今天咱們就說一下測試涉及數據庫操作的功能時如何發現SQL語句使用不當導致的性能低的問題。主要方法就是通過EXPLAIN命令查看SQL語句的執行計劃,如果執行計劃中沒有使用任何索引,基本上可以確認是性能問題,其他情況需要具體分析。如果開發不信,將SQL語句涉及的表格插入100萬行然后執行相同的功能操作看看。
今天的例子以Mysql數據庫演示結果,其他數據庫也是類似操作。
執行explain之后結果集包含如下信息:
+----+-------------+-------+------------+------+---------------+------+---------+------+--------+----------+-------+
|
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+
+----+-------------+-------+------------+------+---------------+------+---------+------+--------+----------+-------+
每個字段解釋如下表:
執行樣例:
mysql> explain select * from test where id > 1;
+----+-------------+-------+-------+---------------+---------+---------+------+-------+-------------+
|
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+
+----+-------------+-------+-------+---------------+---------+---------+------+-------+-------------+
|
| 1 | SIMPLE | test | range | PRIMARY | PRIMARY | 8 | NULL | 34252 | Using where |
+
+----+-------------+-------+-------+---------------+---------+---------+------+-------+-------------+
大家初步使用執行計劃時,可以只關注type的取值是否是ALL即可,如果是ALL就說明SQL語句執行會導致全表掃描,這種SQL語句在表記錄較多時會引入性能問題。
>>本文地址:http://www.jecan.cn/zhuanye/2020/48458.html
聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?