400-650-7353
您所在的位置:首頁(yè) > IT干貨資料 > 軟件測(cè)試 > 【軟件測(cè)試基礎(chǔ)知識(shí)】如何解決SQL語(yǔ)句使用不當(dāng)導(dǎo)致的性能低問(wèn)題

【軟件測(cè)試基礎(chǔ)知識(shí)】如何解決SQL語(yǔ)句使用不當(dāng)導(dǎo)致的性能低問(wèn)題

  • 發(fā)布: 軟件測(cè)試培訓(xùn)
  • 來(lái)源:軟件測(cè)試干貨資料
  • 2020-03-06 17:15:28
  • 閱讀()
  • 分享
  • 手機(jī)端入口

今天咱們就說(shuō)一下測(cè)試涉及數(shù)據(jù)庫(kù)操作的功能時(shí)如何發(fā)現(xiàn)SQL語(yǔ)句使用不當(dāng)導(dǎo)致的性能低的問(wèn)題。主要方法就是通過(guò)EXPLAIN命令查看SQL語(yǔ)句的執(zhí)行計(jì)劃,如果執(zhí)行計(jì)劃中沒(méi)有使用任何索引,基本上可以確認(rèn)是性能問(wèn)題,其他情況需要具體分析。如果開(kāi)發(fā)不信,將SQL語(yǔ)句涉及的表格插入100萬(wàn)行然后執(zhí)行相同的功能操作看看。

今天的例子以Mysql數(shù)據(jù)庫(kù)演示結(jié)果,其他數(shù)據(jù)庫(kù)也是類似操作。

執(zhí)行explain之后結(jié)果集包含如下信息:

+----+-------------+-------+------------+------+---------------+------+---------+------+--------+----------+-------+

|

| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |

+

+----+-------------+-------+------------+------+---------------+------+---------+------+--------+----------+-------+

每個(gè)字段解釋如下表:

執(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í)行計(jì)劃時(shí),可以只關(guān)注type的取值是否是ALL即可,如果是ALL就說(shuō)明SQL語(yǔ)句執(zhí)行會(huì)導(dǎo)致全表掃描,這種SQL語(yǔ)句在表記錄較多時(shí)會(huì)引入性能問(wèn)題。

 

文章“【軟件測(cè)試基礎(chǔ)知識(shí)】如何解決SQL語(yǔ)句使用不當(dāng)導(dǎo)致的性能低問(wèn)題”已幫助

>>本文地址:http://m.hqfphsz.com/zhuanye/2020/48458.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測(cè)試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營(yíng)銷互聯(lián)網(wǎng)營(yíng)銷
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營(yíng)全域電商運(yùn)營(yíng)
  • 軟件測(cè)試軟件測(cè)試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁(yè)設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開(kāi)發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營(yíng)新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開(kāi)發(fā)智能機(jī)器人
 

快速通道fast track

近期開(kāi)班時(shí)間TIME