mysql数据库,数据超过一千万条之后,全文搜索非常消耗内存和CPU
有没有更加高效的检索方案
1.在常用字段上加索引
2.主键最好使用自增,可以将一张表拆成N张表,用id来分段,每次查询之前,先查一次id范围,所属那张表,然后就去查对应表,这种方法感觉很快就能实现
3.数据的转储,如果数据量无限增长,需要考虑转储
4.适当的缓存,引入缓存机制
5.如果不想费事,可以考虑负载均衡,多花点钱,花的钱越多,效果越明显
数据量这么大的话,有没有建索引呢?
你是单表查询还是联表查询
可以用ES(ElasticSearch)进行辅助
使用分布式方式部署数据库减轻查询压力
本身数据量达到千万级,mysql查询肯定是慢的。
1.建立索引
2.分区到不同磁盘
3.分库分表
分库分表,mysql数据量超过500万,速度会有明显的下降
mysql的优势在于分布式
coreseek 或者 ElasticSearch 进行全文索引是比较常用的方案。
这个表查询频率高吗?更新频率高吗?更新周期呢?最多的查询有哪些条件?根据维度是否可以考虑分区(其实mysql分表的效果要比分区好,也省得将来被坑)?关于索引,索引字段离散度是多少?
加INDEX 和Oracle!
首先根据数据量此类MySQL和系统配置的优化已不合适:
(定时重启,sql与索引,表和存储引擎,数据库与应用架构,数据库与操作系统配置,硬件)
然后可以选择 向上扩展 水平扩展 分库分表
什么时候分库分表? 阿里巴巴开发手册 单表行超过500W或者单表容量超过2G(3年内预计)
当然还可以加入缓存定时任务等策略。
具体技术落地记得关注我