如何提高mysql运行效率 如何高效的使用mysql的帮助文档?
如何高效的使用mysql的帮助文档?
1.在数据库设计方面,设计一个结构良好的数据库,允许部分数据下沉,徐昂要设置最合适的字段属性,尽量将字段设置为notnull,这样数据库在查询时就不需要比较null值了。
2、系统架构设计,表哈希。将海量数据哈希到不同的表中,集群、数据库查询和写入分离。
3.写高效的SQL语句提高效率,用join代替子查询,用union代替手动创建的临时表,这些都是必须的。只从数据库中删除必要的数据,并使用不同的存储引擎,如innodb,以减少不需要时的死锁。。Keap可以提高查新的数量和速度。4.使用事物,使用外键,使用索引。
mysql数据表规模九千万左右,怎么优化查询?
我的天,一块九千万的表也太棒了!
我上一家公司明确规定一个表不能超过5000万,因为查询效率会更低!
无论如何,让我们 让我们看看如何优化数据查询!
(1)、单库单表:
1、添加索引,一个好的索引可以换取空间,大大减少查询时间!
2.使用存储过程:减少sql编译的时间!
3,优化sql:包括联合查询的方向,where,order语句使用索引字段,减少多表联合查询的使用,不要使用select *等等!
4、参数配置【6】扩展内存,调整线程池参数等等!
5、打开缓存【7】打开二级缓存和三级缓存,提高查询效率!
(2)、单库多表:
用水平拆分(比如按月)把表分成12个表,然后在代码末尾逐月访问对应的月的表!
使用垂直分割:许多字段仅用于保存记录(像一些约定一样,备注的字段通常非常大)。可以把查询中经常用到的字段放在一个常用的表中进行查询,其他字段存储在另一个表中,可以通过唯一的索引字段进行链接。证书查询效率大大提高(因为磁盘IO减少)!
③多数据库多表:
(1)、主从读写分离:虽然表中的数据仍然一致,但是由于多个从库读取,主库写入数据,共享锁的性能开销大大降低!
(2)、子数据库表:指定一个字段为子数据库字段,使用哈希值或其他策略分布在不同的数据库中,然后根据相应的分布策略(如上面的水平拆分或垂直拆分)分散到不同的表中!
比如我们现在的数据库设计为8个数据库,1024个表,而你的近1亿数据在我们单个表中不到10W!
虽然理论上一个表的大小没有限制,但是基于查询效率和索引性能应该不会超过5000万个数据!
更多关于多线程、分布式、微服务、数据库、缓存的干货会继续分享,敬请关注。。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。