很多同學認為功能測試和性能測試是嚴格分開的,功能測試人員無法發(fā)現(xiàn)性能問題。其實不是這樣的,功能測試人員在驗證功能時也可以發(fā)現(xiàn)性能問題;一些功能反而在功能測試環(huán)境不好驗證,需要在性能環(huán)境上測試。
? ? 今天咱們就說一下測試涉及數(shù)據(jù)庫操作的功能時如何發(fā)現(xiàn)SQL語句使用不當導致的性能低的問題。主要方法就是通過EXPLAIN命令查看SQL語句的執(zhí)行計劃,如果執(zhí)行計劃中沒有使用任何索引,基本上可以確認是性能問題,其他情況需要具體分析。如果開發(fā)不信,將SQL語句涉及的表格插入100萬行然后執(zhí)行相同的功能操作看看。
? ? 今天的例子以Mysql數(shù)據(jù)庫演示結果,其他數(shù)據(jù)庫也是類似操作。
? ? 執(zhí)行explain之后結果集包含如下信息:
+----+-------------+-------+------------+------+---------------+------+---------+------+--------+----------+-------+
|
| id | select_type | table | partitions |?type?| possible_keys |?key?| key_len | ref ?| rows ? | filtered |?Extra?|
+
+----+-------------+-------+------------+------+---------------+------+---------+------+--------+----------+-------+
type字段解釋如下表:
?執(zhí)行樣例:
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 |
+
+----+-------------+-------+-------+---------------+---------+---------+------+-------+-------------+
? ? ?大家初步使用執(zhí)行計劃時,可以只關注type的取值是否是ALL即可,如果是ALL就說明SQL語句執(zhí)行會導致全表掃描,這種SQL語句在表記錄較多時會引入性能問題。
?以下是我收集到的比較好的學習教程資源,雖然不是什么很值錢的東西,如果你剛好需要,可以評論區(qū),留言【777】直接拿走就好了
各位想獲取資料的朋友請點贊 + 評論 + 收藏,三連!文章來源:http://www.zghlxwxcb.cn/news/detail-620469.html
三連之后我會在評論區(qū)挨個私信發(fā)給你們~文章來源地址http://www.zghlxwxcb.cn/news/detail-620469.html
到了這里,關于功能測試也可以發(fā)現(xiàn)數(shù)據(jù)庫相關的性能問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!