Mysql教程

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)

   


关注微信获取最新动态