影響索引的mysql函數_mysql索引對排序的影響實例分析

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

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

測試

1、創建測試表: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行數據

$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、商場網站,一般都會按照某個分類進行價格上的排序,我們來模擬一下,執行同一條sql語句。

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

(1)首先不添加索引

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

9f44ebabb97b4381addad1a789679e05.png

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

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

這里的查詢分析中Extra沒用了Using filesort,表示添加上索引再進行查詢的sql沒有使用到外部排序,而是使用到了索引的排序,因為索引本身就是會排序的,所以不需要額外的order by一次。

19fae49ccd6f23c5bc0fc40fa1ec6dd8.png

4、觀測查詢時間

b29674489fa317b38538501182b123bb.png

Query_ID為1的是沒有添加索引執行的語句,Query_ID為3的是添加索引后執行的語句,一個執行時間為0.013秒,一個執行時間為0.005秒,肯定是加上索引的快,我們來看看具體快在哪里

Query_ID為1的sql語句執行詳細耗時圖:

489edf890355748c00ed3be2c7c91b3d.png

Query_ID為3的sql語句執行詳細耗時圖:

c4c6f06971fe82a45c3873e9db3d0505.png

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

結論:索引對排序的速度是有一定的影響的,所以,在實際的開發中,要結合實際情況制定索引,并盡可能將排序字段添加至索引中。

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總》

希望本文所述對大家MySQL數據庫計有所幫助。

您可能感興趣的文章:mysql建立高效的索引實例分析

mysql重復索引與冗余索引實例分析

mysql索引覆蓋實例分析

MySQL中NULL對索引的影響深入講解

詳解MySQL索引原理以及優化

通過唯一索引S鎖與X鎖來了解MySQL死鎖套路

mysql 添加索引 mysql 如何創建索引

MySQL索引類型總結和使用技巧以及注意事項

MySQL查看、創建和刪除索引的方法

MySQL 創建索引(Create Index)的方法和語法結構及例子

mysql聚簇索引的頁分裂原理實例分析

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534244.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534244.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534244.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php如何對 mysql 中text類型拆分存入一個數組_PHP遞歸實現無限級分類,可選返回字符串和數組...

正 文&#xff1a;在一些復雜的系統中&#xff0c;要求對信息欄目進行無限級的分類&#xff0c;以增強系統的靈活性。那么PHP是如何實現無限級分類的呢&#xff1f;我們在本文中使用遞歸算法并結合mysql數據表實現無限級分類。遞歸&#xff0c;簡單的說就是一段程序代碼的重復調…

python 開發框架 ant_Golang/python語言開發的分布式游戲服務器框架 mqant

軟件介紹mqantmqant 是一款基于 Golang 語言的簡潔&#xff0c;高效&#xff0c;高性能的分布式游戲服務器框架&#xff0c;研發的初衷是要實現一款能支持高并發&#xff0c;高性能&#xff0c;高實時性的游戲服務器框架&#xff0c;也希望 mqant 未來能夠做即時通訊和物聯網方…

java w3c xml_org.w3c.dom(java dom)解析XML文檔

首先來了解點Java DOM 的 API:1.解析器工廠類&#xff1a;DocumentBuilderFactory創建的方法&#xff1a;DocumentBuilderFactory dbf DocumentBuilderFactory.newInstance();2.解析器&#xff1a;DocumentBuilder創建方法&#xff1a;通過解析器工廠類來獲得 DocumentBuilder…

java中小數點位數_Java中限制小數位數問題

在Java中限制小數位數的方法不止一種&#xff0c;下面我們以限制兩位小數為例來說明幾種限制小數位數的方法&#xff0c;其他位數可以以此類推方式一&#xff1a;四舍五入double f 111231.5585;BigDecimal b new BigDecimal(f);double f1 b.setScale(2,…

orange pi java_[中文]Orange Pi家族各大成員一覽表

全部復制來自官網&#xff0c;只修改了錯別字和優化了排版。Orange Pi Zero香橙派Zero是一款開源的單板電腦&#xff0c;新一代的arm開發板,它可以運行Android4.4、Ubuntu、Debian等操作系統。香橙派Zero使用全志H2系統級芯片&#xff0c;同時擁有256MB/512MB DDR3 內存(256MB為…

java 微服務源碼_基于Java的微服務架構源碼案例Abixen

微服務越來越受歡迎&#xff0c;每個月都有更多的庫包和解決方案來支持微服務的開發測試&#xff0c;很多Java開發人員雖然聽說過微服務&#xff0c;但是真正采用還是有猶豫的&#xff1a;“我知道&#xff0c;微服務是非常棒的&#xff0c;微服務器更容易維護和進一步開發&…

rocketmq java例子_SpringBoot和RocketMQ的簡單實例

1&#xff0c;引用jar包build.gradle文件添加jar包引用compile group: org.apache.rocketmq, name: rocketmq-spring-boot-starter, version: 2.1.12&#xff0c;配置文件application.properties 配置文件spring.application.nameapp-dempserver.port8081###rocketmq###rocketm…

mysql migrations_Code First Migrations更新數據庫結構(數據遷移)

背景 code first起初當修改model后&#xff0c;要持久化至數據庫中時&#xff0c;總要把原數據庫給刪除掉再創建(DropCreateDatabaseIfModelChanges)&#xff0c;此時就會產生一個問題&#xff0c;當我們的舊數據庫中包含一些測試數據時&#xff0c;當持久化更新后&#xff0c;…

java 機器碼 虛擬機_Java虛擬機:源碼到機器碼

無論什么語言寫的代碼&#xff0c;其到最后都是通過機器碼運行的&#xff0c;無一例外。那么對于 Java 語言來說&#xff0c;其從源代碼到機器碼&#xff0c;這中間到底發生了什么呢&#xff1f;這就是今天我們要聊的。如下圖所示&#xff0c;編譯器可以分為&#xff1a;前端編…

docker 遠程連接 文件看不到_開發提升十倍生產力: IDEA 遠程一鍵部署 Spring Boot 到 Docker...

一、開發前準備二、新建項目《Java 2019 超神之路》《Dubbo 實現原理與源碼解析 —— 精品合集》《Spring 實現原理與源碼解析 —— 精品合集》《MyBatis 實現原理與源碼解析 —— 精品合集》《Spring MVC 實現原理與源碼解析 —— 精品合集》《Spring Boot 實現原理與源碼解析…

java多臺_Java 多態

Java中多態的特性&#xff0c;在學習中就是很難懂&#xff0c;比較抽象的概念。學的時候就犯糊涂&#xff0c;但日后會發現&#xff0c;基礎在日常工作的理解中占有重要的角色。下面&#xff0c;我將用一個代碼實例&#xff0c;回憶和鞏固多態的概念和存在的意義。理解多態&…

快準牌電腦發軟件_做自媒體必備技能,視頻剪輯軟件排名(精品篇)

作者&#xff1a;老馬引流定位&#xff1a;專業專注引流推廣0X00 前言毫不客氣的說&#xff0c;視頻正日益成為社交媒體和營銷的重要組成部分&#xff0c;有越來越多的人參與到視頻剪輯當中來&#xff0c;而其中最為關鍵的就是視頻剪輯軟件。而市面上的視頻剪輯軟件當然也是五花…

ad電阻原理圖_【雕爺學編程】Arduino動手做(2)---光敏電阻模塊

【Arduino】108種傳感器模塊系列實驗&#xff08;02&#xff09;實驗二&#xff1a;光敏電阻傳感器模塊我手里這塊是三針版的&#xff0c;挺秀氣吧光敏電阻是用硫化隔或硒化隔等半導體材料制成的特殊電阻器&#xff0c;其工作原理是基于內光電效應。光照愈強&#xff0c;阻值就…

java從url下載文件_Java從URL下載文件

在這篇文章中將學習如何從java下載URL中的文件。使用java.net.URL openStream()方法從java程序中的URL下載文件。也可以使用Java NIO Channels或Java IO InputStream從URL打開流中讀取數據&#xff0c;然后將它保存到文件中。下面是從指定URL下載的簡單Java程序。它演示了如何在…

怎么判斷一個字符串的最長回文子串是否在頭尾_LeetCode 第 131 號問題:分割回文串...

題目來源于 LeetCode 上第 131 號問題&#xff1a;分割回文串。題目難度為 Medium&#xff0c;目前通過率為 45.8% 。題目描述給定一個字符串 s&#xff0c;將 s 分割成一些子串&#xff0c;使每個子串都是回文串。返回 s 所有可能的分割方案。示例:輸入題目解析首先&#xff0…

java的地位_Java地位無可動搖的12個原因

如今&#xff0c;面對曾經在程序員中被各種新技術掩蓋直至堙滅的技術值得懷念。猶如COBOL這當年被老程序員們尊為神器的語言如今也基本沒有價值。而Java作為現代程序員的中堅力量在這點上會不會成為下一個COBOL&#xff1f;有關JAVA的技術賣出多少本書已經是一個很久遠的記憶了…

hystrix threadpool coresize_Hystrix斷路器 - 求知若渴的蝸牛

Hystrix介紹在微服務場景中&#xff0c;通常會有很多層的服務調用。如果一個底層服務出現問題&#xff0c;故障會被向上傳播給用戶。我們需要一種機制&#xff0c;當底層服務不可用時&#xff0c;可以阻斷故障的傳播。這就是斷路器的作用。他是系統服務穩定性的最后一重保障。在…

ionic保存到mysql_ionic sqlite 存取數據封裝(兼容真機與webkit瀏覽器)

不管是真機還是H5&#xff0c;都有提供sqlite數據庫進行存儲數據。那么我們只要封裝好函數就能隨意調用了。如果只是存儲簡單的鍵值對形式的話&#xff0c;ionic官網也提供了一個兼容網頁的storage&#xff0c;https://ionicframework.com/docs/storage&#xff0c;但只能key/v…

sql plus 表的總記錄數是多少_直播回顧 | 億級并發絲毫不虛,TDSQL-SQL引擎是如何煉成的...

騰訊云數據庫國產數據庫專題線上技術沙龍正在火熱進行中&#xff0c;3月19日唐顥的分享已經結束&#xff0c;沒來得及參與的小伙伴不用擔心&#xff0c;以下就是直播的視頻和文字回顧。關注“騰訊云數據庫”公眾號&#xff0c;回復“0319唐顥”&#xff0c;即可下載直播分享PPT…

java plug機制_插件機制 - OpooPress - 基于 Java 的靜態博客生成器

插件機制通過插件機制可以很容易的擴展 OpooPress 博客系統的功能。 Plugin 定義如下public interface Plugin{/**** param registry*/void initialize(Registry registry);}Registry 接口定義如下&#xff1a;public interface Registry {Site getSite();void registerConvert…