首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《MySQL系列》之 性能优化(一)

何谓性能优化

优化简介

      所谓 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语句查看索引:

删除索引

使用命令可以删除索引,例如:

由于字数过长,下一章节再讲

历史文章及资料

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230110A00XC000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券