已经严重影响查询性能,纯粹添加索引会影响插入性能,请问还有其他方式么
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 ![]() 千万不算过大 索引该用就用 |
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,分表.分库不太建议,业务层也要改动,成本太高 |