已经严重影响查询性能,纯粹添加索引会影响插入性能,请问还有其他方式么
1
blueorange OP 已经达到千万级别
|
2
jyounn 2019-04-01 09:28:18 +08:00
分区
|
3
lhx2008 2019-04-01 09:29:04 +08:00 via Android
先加索引啊,不加索引你事务插入要锁表的
|
4
zuoakang 2019-04-01 09:29:19 +08:00 via Android
分区,分表,分库。
|
5
reus 2019-04-01 09:32:26 +08:00 1
千万不算过大
索引该用就用 |
6
jabin88 2019-04-01 09:37:51 +08:00
同步到 mongodb 或者 es,这样就不用查 mysql 了,再多 10 倍都可以
|
7
blueorange OP @jabin88 有什么好的方案实时同步吗?
|
8
dapang1221 2019-04-01 09:58:01 +08:00
比较好奇以前不加索引你是怎么查的……语句都是全表扫么……
|
9
ducklyl 2019-04-01 10:51:20 +08:00
如果只是影响查询性能,可以把数据同步到 es 或 solr,使用全文检索提高查询性能
|
10
sujin190 2019-04-01 11:37:25 +08:00
如果只是 4 到 5 项索引,写性能影响不大吧,除非你写特别多,如果每秒过千的写,估计也不是单表千万数据的问题了
千万级别对 mysql 数据真不算大,如果索引超过内存很多,倒是可以多加点内存,索引和查询缓存的效果还是很明显的 |
11
chaleaochexist 2019-04-01 11:45:59 +08:00
分区.分表.分库.
|
12
opengps 2019-04-01 11:47:57 +08:00
每月重复一次。如果不是分布式 DRDS 那种方案的话:
先考虑表分区 然后考虑分表 然后考虑分库 |
13
blueskea 2019-04-01 12:08:50 +08:00 via Android
拆表,分区,读写分离,canal 同步到 hive es tidb 之类
|
14
opengps 2019-04-01 12:12:28 +08:00
补上我的经历: https://www.opengps.cn/Blog/View.aspx?id=284
GPS 密集写入案例:单机数据库阶段,sql server 使用表分区,线上应用最大单日写入 1500 万行,最大单表大小 12 亿 没有更高实际应用数值的原因是替换了别的数据库 |
15
mmdsun 2019-04-01 12:46:56 +08:00 via Android
单表行数超过 500 万行或者单表容量超过 2 GB,推荐进行分库分表。
|
16
qianji201712 2019-04-01 12:47:28 +08:00
@opengps 大佬,学习了!
|
17
opengps 2019-04-01 12:52:53 +08:00
@qianji201712 怪我嘴拙,当时是 2012 年,设计这张表的时候不会写文章,至今才整理成可以让人看懂的文字
|
18
iyaozhen 2019-04-01 13:05:51 +08:00 via Android
要看几千万还有未来的趋势,1 亿以下表分区就行了。
再多就要分库分表了,业务层也需要改动 |
19
love 2019-04-01 13:10:37 +08:00
现在都 ssd,千万算个啥,除非你没索引全表扫描了
|
20
hilbertz 2019-04-01 13:14:55 +08:00
128g 内存,ssd 硬盘,几十亿都没问题
|
21
Radom 2019-04-01 14:17:55 +08:00
千万也算大?
|
22
mineqiqi 2019-04-01 14:37:13 +08:00
千万级别的加索引完全能解决
|
23
Joyboo 2019-04-01 14:44:07 +08:00
还以为是每日千万级别。。
|
24
sean328 2019-04-01 23:57:08 +08:00
不推荐分区,千万级别数据单表索引合理日常增删改查完全是没问题的,再多的话再考虑分表分库
|
25
Evilk 2019-04-02 16:07:13 +08:00
之前单表数据在 5000W 左右,用的分区,后面如果持续增长的话,可以考虑 es,分表.分库不太建议,业务层也要改动,成本太高
|