何谓性能优化
优化简介
所谓 MySQL 性能优化,一方面是指通过调整系统参数、合理安排资源使得MySQL的运行速度更快、更加节省资源,另一方面,也指优化我们通常使用的SQL语句——尤其是查询语句,来提高MySQL的性能。
基本原则
MySQL 性能优化的基本原则是:
减少系统瓶颈;
减少资源占用;
提高系统反应速度。
常用方法
MySQL 性能优化通常从以下几个方面入手:
找出系统瓶颈,提高MySQL数据库整体的性能;
合理的结构设计和参数调整,提高数据库操作的相应速度;
最大限度节省系统资源,以便系统可以提供更大负荷的服务。
例如:
通过优化文件系统,来提高磁盘I/O的独写速度;
通过优化操作系统的调度策略,提高MySQL在高负荷情况下的负载能力;
通过优化表结构、索引、查询语句等使得查询响应更快。
在这篇文章中主要是讲解MySQL索引与查询优化
为什么需要使用索引呢?
从概念上讲,数据库是数据表的集合,数据表是数据行和数据列的集合。当你执行一个从数据表中查询部分数据行的时候,得到的就是另外一个数据表和数据行的集合。
当然,我们都希望获得这个新的集合的时间尽可能地短,效率尽可能地高,这就是优化查询。
提升查询速度的技术有很多,其中最重要的就是索引。当你发现自己的查询速度慢的时候,最快解决问题的方法就是使用索引。索引的使用是影响查询速度的重要因素。在使用索引之前其他的优化查询的动作纯粹是浪费时间,只有合理地使用索引之后,才有必要考虑其他优化方式。
索引如何工作的?
首先,在你的MySQL上创建 user_info_log 表,方便下面进行演示。
假如我们要筛选 action为2的所有记录,SQL如下:
通过查询分析器explain分析这条查询语句:
分析结果如下:
其中type为ALL表示要进行全表扫描。这样效率无疑是极慢的。
下面为action列添加索引:
然后再次执行查询分析,结果如下:
我们看到这次查询就使用索引了。加索引前的值是Using Where,加索引后的值为空。
那么为什么索引会提高查询速度呢?原因是索引会根据索引值进行分类,这样就不用再进行全表扫描了。
如何添加索引
1、使用创建,语法如下:
例如我们对ip_address这一列创建一个长度为16的索引:
2、使用ALTER语句创建,语法如下:
ALTER语句创建索引前面已经有例子了。下面提供一个设置索引长度的例子:
3、建表的时候创建索引:
可以通过show语句查看索引:
删除索引
使用命令可以删除索引,例如:
由于字数过长,下一章节再讲
历史文章及资料
领取专属 10元无门槛券
私享最新 技术干货