主頁(yè) > 知識(shí)庫(kù) > mysql索引對(duì)排序的影響實(shí)例分析

mysql索引對(duì)排序的影響實(shí)例分析

熱門(mén)標(biāo)簽:福建外呼電銷機(jī)器人加盟 百度地圖標(biāo)注要什么軟件 徐涇鎮(zhèn)騰訊地圖標(biāo)注 400電話申請(qǐng)廠家現(xiàn)貨 自己做地圖標(biāo)注需要些什么 天津公司外呼系統(tǒng)軟件 電話機(jī)器人的價(jià)格多少錢(qián)一個(gè)月 中國(guó)地圖標(biāo)注公司 昌德訊外呼系統(tǒng)

本文實(shí)例講述了mysql索引對(duì)排序的影響。分享給大家供大家參考,具體如下:

索引不僅能提高查詢速度,還可以添加排序速度,如果order by 后面的語(yǔ)句用到了索引,那么將會(huì)提高排序的速度。

測(cè)試

1、創(chuàng)建測(cè)試表:t15表

CREATE TABLE `t15` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `cat_id` int(10) unsigned NOT NULL DEFAULT '0',
 `price` decimal(10,2) NOT NULL DEFAULT '0.00',
 `name` char(5) NOT NULL DEFAULT '',
 PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8

2、插入1W行數(shù)據(jù)

?php
$db = 'test';
$conn = mysql_connect('localhost','root','1234');
mysql_query('use ' . $db , $conn);
mysql_query('set names utf8' , $conn);
for($i=1;$i=10000;$i++) {
  $cat_id = rand(1,10);
  $price = rand(1,50000);
  $name = substr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,5);
  $sql = sprintf("insert into t15 values (%d,%d,%f,'%s')",$i,$cat_id,$price,$name);
  mysql_query($sql , $conn);
}

3、商場(chǎng)網(wǎng)站,一般都會(huì)按照某個(gè)分類進(jìn)行價(jià)格上的排序,我們來(lái)模擬一下,執(zhí)行同一條sql語(yǔ)句。

select name,cat_id,price from t15 where cat_id=1 order by price;

(1)首先不添加索引

從查詢分析可以看到Extra中使用到了Using filesort,表示需要進(jìn)行文件排序。

(2)給(cat_id,price)列添加索引

alter table t15 add index cp(cat_id,price);

這里的查詢分析中Extra沒(méi)用了Using filesort,表示添加上索引再進(jìn)行查詢的sql沒(méi)有使用到外部排序,而是使用到了索引的排序,因?yàn)樗饕旧砭褪菚?huì)排序的,所以不需要額外的order by一次。

4、觀測(cè)查詢時(shí)間

Query_ID為1的是沒(méi)有添加索引執(zhí)行的語(yǔ)句,Query_ID為3的是添加索引后執(zhí)行的語(yǔ)句,一個(gè)執(zhí)行時(shí)間為0.013秒,一個(gè)執(zhí)行時(shí)間為0.005秒,肯定是加上索引的快,我們來(lái)看看具體快在哪里

Query_ID為1的sql語(yǔ)句執(zhí)行詳細(xì)耗時(shí)圖:

Query_ID為3的sql語(yǔ)句執(zhí)行詳細(xì)耗時(shí)圖:

很明顯,Query_ID1中的Sorting result耗時(shí)0.012秒,而Query_ID2中的Sorting result只耗時(shí)0.000004秒,而這個(gè)Sorting result就是排序耗時(shí)。

結(jié)論:索引對(duì)排序的速度是有一定的影響的,所以,在實(shí)際的開(kāi)發(fā)中,要結(jié)合實(shí)際情況制定索引,并盡可能將排序字段添加至索引中。

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》及《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》

希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。

您可能感興趣的文章:
  • mysql索引使用率監(jiān)控技巧(值得收藏?。?/li>
  • 當(dāng)Mysql行鎖遇到復(fù)合主鍵與多列索引詳解
  • MySQL索引不會(huì)被用到的情況匯總
  • MySQL查詢條件中in會(huì)用到索引嗎
  • MySQL如何修改賬號(hào)的IP限制條件詳解
  • MySQL分區(qū)表的局限和限制詳解
  • mysql查詢語(yǔ)句通過(guò)limit來(lái)限制查詢的行數(shù)
  • MySQL連接數(shù)超過(guò)限制的解決方法
  • MySQL索引長(zhǎng)度限制原理解析

標(biāo)簽:駐馬店 鄂爾多斯 陜西 梅河口 北京 黔西 荊門(mén) 昌都

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql索引對(duì)排序的影響實(shí)例分析》,本文關(guān)鍵詞  mysql,索引,對(duì),排序,的,影響,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql索引對(duì)排序的影響實(shí)例分析》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于mysql索引對(duì)排序的影響實(shí)例分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章