300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql查询重复数 mysql数据表规模九千万左右 – 数据库 – 前端 主流mysql分布式方案

mysql查询重复数 mysql数据表规模九千万左右 – 数据库 – 前端 主流mysql分布式方案

时间:2018-07-17 16:11:44

相关推荐

mysql查询重复数 mysql数据表规模九千万左右 – 数据库 – 前端 主流mysql分布式方案

偶上家公司明确规定,一张表不能超过5000万,因为查询效率会有更大的降低!

无论如何,看下如何优化数据查询吧!

①,单库单表:

1,加索引,一个好的索引能用空间换取查询时间的大为降低!

2,使用存储过程:减少sql编译的时间!

3,优化sql:包括联合查询的指向,where,order语句使用索引字段,减少使用多表联合查询,不要使用select *等等!

4,参数配置:扩大内存,调节线程池参数等等!

5,开启缓存:开启二级缓存,三级缓存,提升查询效率!

②,单库多表:

使用水平拆分(比如按月份),将表分为12张表,然后在代码端按照月份访问相应月份的表!

使用垂直拆分:很多字段只是作为保存记录用,(像一些约定,备注啥的字段往往很大),可以将查询中常常用到的字段放在常用的一张表中做查询,另一些字段放另一张表中存储,通过某个唯一索引字段联系起来,可以保证查询效率大为提升(因为磁盘IO减少)!

③,多库多表:

①,主从读写分离:表中数据虽然还是一致,但是由于多个从库读,主库写数据,大大减少共享锁的性能开销!

②,分库分表:指定一个字段作为,分库字段,利用hash值或者其它策略,分布在不同的库里面,在按照相应分布策略(比如上面的水平拆分或者垂直拆分),分散到不同的表里!

比如大家现在的数据库设计为8库1024表,你的将近一亿的数据在大家的单张表里面只有不到10W!

虽然理论上,一张表的大小不做任何限制,但是基于查询效率,索引性能等,不宜超出5000万数据!

关于多线程,分布式,微服务,数据库,缓存的更多干货,会继续分享,敬请关注。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。