我是靠谱客的博主 虚拟咖啡,最近开发中收集的这篇文章主要介绍MySql调优,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Mysql性能优化就是通过合理安排资源,调整系统参数使MySql运行更快、更节省资源。

mysql调优其实就是从时间、空间这两个方面来进行优化

mysql怎么调优

第一:选择最合适的字段属性。

mysql在创建数据库的时候肯定是数据库中的表越小越好,这样才能提高查询的速度。但是现实往往不如人意,每天可能产生的数据量是以数万或者数十万为单位的,这时就要充分地考虑在建表时的字段长度了。比如说在存储电话号的时候,如果将其写成CHAR(255),这显然会给数据库带来很多不必要的空间浪费,明明CHAR(11)就可以解决的问题。

第二:使用连接查询(join)代替子查询。

子查询的优点是可以使用简单的SELECT语句就可以完成逻辑较为复杂的查询动作,而且还能避免死锁的情况产生。但是有时也可以考虑使用连接查询来完成,毕竟连接查询不需要像子查询一样在内存中创建临时表,再从临时表中过滤数据,从而加快查询速度。

第三:使用union联合查询。

union本来就有联合的含义,它可以将多个SELECT语句的查询结果联合到一个查询中,从而替代了手动创建临时表的过程。而且union还有一个好处就是使用完了以后自动就删除了,一点也不占用内存空间。这真是“事了拂衣去,片叶不沾身”呀。

第四:通过事务来管理。

事务是数据库调优时的一个老生常谈的概念,由于其4大特性,事务是不可避免的调优方式之一,它可以保证数据的完整性、一致性。可以用一句话来总结“去不了终点,那就回到原点。”

第五:锁定表。

尽管事务能够保证数据库的完整性和一致性,但是它本身其实也存在一些弊端。因为它本身具有一定的独占性,当事务没有执行完毕以前,用户发出的其他操作就只能等待,一直等到所有的事务都结束了才能继续执行。如果用户访问量特别大的时候,这会造成系统的严重延迟问题。

所以可以通过锁定表的方法,保证在没有执行到UNLOCKTABLES指令之前所有被LOCKTABLE修饰地表的查询语句不会被插入、删除和修改。

第六:合理使用外键。

外键本身存在的作用就是保证表与表之间的参照完整性,使用外键可以有效地增加数据之间的关联性。

第七:正确使用索引。

索引是提高数据库性能的最常见的方法,能够正确地使用索引,能够大大地提高查询效率。

但是也不能够为所有的列都创建索引,因为它本身会占用内存,维护起来也很麻烦,它就是一把双刃剑,所以索引在使用的时候需要根据实际情况正确使用才行。

第八:优化查询语句

一个好的查询语句能够很明显地提高查询效率,反之就会慢到怀疑是不是程序写错了。

那么什么样的语句查询语句算是好的呢?可以参考以下几点要求

1、在比较的时候尽量在相同的字段之间进行比较。例如不能将一个带有索引的INT字段和BIGINT字段进行比较。

2、已将创建了索引的字段上不要使用函数,那样会导致索引失效。

3、查询时不鼓励使用like语句查询,因为那会消耗掉一部分系统的性能

最后

以上就是虚拟咖啡为你收集整理的MySql调优的全部内容,希望文章能够帮你解决MySql调优所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部