18.4 本章实例
本节将对MySQL进行优化操作。本节要求的操作如下:
(1)查看InnoDB表的査询的记录数和更新的记录数。
(2)分析查询语句的性能。SELECT语句如下:
SELECT * FROM score WHERE stu_id=902 ;
(3)分析score表。
本实例的执行步骤如下:
1.查看InnoDB日表的查询次数和更新次数
InnoDB_rows_read参数表不InnoDB表査询的记录数。InnoDB_rows_updated参数表示 InnoDB表更新的记录数。使用SHOW STATUS语句来查询这两个参数的值。语句执行如下:
mysql> SHOW STATUS LIKE 'InnoDB_rows_read' \G ************1.row***************** Variable_name: InnoDB_rows_read Value: 5 1 row in set (0.13 sec) mysql> SHOW STATUS LIKE 'InnoDB_rows_updated' \G ***********************1.row************ Variable name: InnoDB rows updated Value: 7 1 row in set (0.00 sec)
分析查询语句的性能 MySQL中,使用EXPLAIN语句来分析査询语句的性能。下面是分析题中给出的SELECT语句的性能。
mysql> EXPLAIN SELECT * FROM score WHERE stu_id=902 \G ***********************1.row************ id: 1 select_type: SIMPLE table: score type: ref possible_keys: index_stu_id key: index_stu_id key_len: 4 ref: const rows: 2 Extra: 1 row in set (0.00 sec)
结果显示,查询类型为SIMPLE,说明这是一个简单查询;type值为ref表示查询时 使用了普通索引;查询时使用的索引是index_stu_id.rows的值为2,表示查询结果有两条记录。
分析score表
MySQL中使用ANALYZE TABLE语句来分析score表。ANALYZE TABLE语句执行如下:
mysql>ANALYZE TABLE score; +---------------+--------------+---------------+--------------+ | Table | Op | Msg_type | Msg_text | +---------------+--------------+---------------+--------------+ | test.score | analyze | status | OK | +---------------+--------------+---------------+--------------+ 1 row in set(0.00 sec)