1. 目标
l 了解什么是优化
l 掌握优化查询的方法
l 掌握优化数据库结构的方法
l 掌握优化MySQL服务器的方法
2. 什么是优化?
l 合理安排资源、调整系统参数使MySQL运行更快、更节省资源。
l 优化是多方面的,包括查询、更新、服务器等。
l 原则:减少系统瓶颈,减少资源占用,增加系统的反应速度。
3. 数据库性能参数
l 使用SHOW STATUS语句查看MySQL数据库的性能参数
SHOW STATUS LIKE 'value‘
l 常用的参数:
Slow_queries 慢查询次数
Com_(CRUD) 操作的次数
Uptime 上线时间
SHOW STATUS LIKE ‘Slow_queries‘
SHOW STATUS LIKE ‘Com_insert‘
SHOW STATUS LIKE ‘Com_delete‘
SHOW STATUS LIKE ‘Com_update‘
4. 查询优化
4.1. EXPLAIN
在MySQL中可以使用EXPLAIN查看SQL执行计划,用法:EXPLAIN SELECT * FROM tb_item
4.2. 结果说明
4.2.1. id
SELECT识别符。这是SELECT查询序列号。这个不重要。
4.2.2. select_type
表示SELECT语句的类型。
有以下几种值:
1、 SIMPLE
表示简单查询,其中不包含连接查询和子查询。
2、 PRIMARY
表示主查询,或者是最外面的查询语句。
3、 UNION
表示连接查询的第2个或后面的查询语句。
4、 DEPENDENT UNION
UNION中的第二个或后面的SELECT语句,取决于外面的查询。
5、 UNION RESULT
连接查询的结果。
6、 SUBQUERY
子查询中的第1个SELECT语句。
7、 DEPENDENT SUBQUERY
子查询中的第1个SELECT语句,取决于外面的查询。
8、 DERIVED
SELECT(FROM 子句的子查询)。
4.2.3. table
表示查询的表。
4.2.4. type(重要的是否需要优化的排除手段)
表示表的连接类型。
以下的连接类型的顺序是从最佳类型到最差类型:
1、 system
表仅有一行,这是const类型的特列,平时不会出现