mysql索引對排序的影響實例分析
本文實例講述了mysql索引對排序的影響。分享給大家供大家參考,具體如下:
索引不僅能提高查詢速度,還可以添加排序速度,如果order by 后面的語句用到了索引,那么將會提高排序的速度。
測試
1、創(chuàng)建測試表: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、商場網(wǎng)站,一般都會按照某個分類進行價格上的排序,我們來模擬一下,執(zhí)行同一條sql語句。
select name,cat_id,price from t15 where cat_id=1 order by price;
(1)首先不添加索引
從查詢分析可以看到Extra中使用到了Using filesort
,表示需要進行文件排序。
(2)給(cat_id,price)列添加索引
alter table t15 add index cp(cat_id,price);
這里的查詢分析中Extra沒用了Using filesort,表示添加上索引再進行查詢的sql沒有使用到外部排序,而是使用到了索引的排序,因為索引本身就是會排序的,所以不需要額外的order by一次。
4、觀測查詢時間
Query_ID為1的是沒有添加索引執(zhí)行的語句,Query_ID為3的是添加索引后執(zhí)行的語句,一個執(zhí)行時間為0.013秒,一個執(zhí)行時間為0.005秒,肯定是加上索引的快,我們來看看具體快在哪里
Query_ID為1的sql語句執(zhí)行詳細耗時圖:
Query_ID為3的sql語句執(zhí)行詳細耗時圖:
很明顯,Query_ID1中的Sorting result
耗時0.012秒,而Query_ID2中的Sorting result
只耗時0.000004秒,而這個Sorting result
就是排序耗時。
結(jié)論:索引對排序的速度是有一定的影響的,所以,在實際的開發(fā)中,要結(jié)合實際情況制定索引,并盡可能將排序字段添加至索引中。
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》
希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。
相關(guān)文章
mysql 字符串轉(zhuǎn)數(shù)組的實現(xiàn)示例
有時候,我們需要將一個字符串拆分成一個數(shù)組,本文主要介紹了mysql 字符串轉(zhuǎn)數(shù)組的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-01-01更新text字段時出現(xiàn)Row size too large報錯應(yīng)付措施
個人建議:表的text字段很多建議建表時加上 row_format = dynamic當然,回過頭來MySQL的報錯也是有誤導(dǎo)性的,感興趣的你可以參考下本文2013-03-03