索引的工作原理要理解MySQL中索引的工作原理,最簡(jiǎn)單的方法就是去看一看一本書(shū)的索引部分:比如你想在一本書(shū)中尋找某個(gè)主題,一般會(huì)先看書(shū)的索引目錄,找到對(duì)應(yīng)的章節(jié)、對(duì)應(yīng)的頁(yè)碼后就可以快速找到你想看的內(nèi)容。
10年積累的成都網(wǎng)站建設(shè)、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有吉林免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
數(shù)據(jù)庫(kù)名:指定需要查看索引的數(shù)據(jù)表所在的數(shù)據(jù)庫(kù),可省略。比如,SHOW INDEX FROM student FROM test; 語(yǔ)句表示查看 test 數(shù)據(jù)庫(kù)中 student 數(shù)據(jù)表的索引。
在數(shù)據(jù)庫(kù)表中,使用索引可以大大提高查詢速度。
如果沒(méi)有索引,MySQL將從第一行記錄開(kāi)始,穿越整個(gè)表找到相應(yīng)的記錄,表越大,相應(yīng)的查詢的代價(jià)也就越大。如果針對(duì)查詢中的列有索引,MySQL就能在數(shù)據(jù)文件中快速確定需要查找的位置,再也不用穿越整個(gè)表來(lái)?yè)茢?shù)據(jù)了。
SHOW KEYS是SHOW INDEX的同義詞。您也可以使用mysqlshow -k db_name tbl_name命令列舉一個(gè)表的索引。SHOW INNODB STATUS語(yǔ)法 SHOW INNODB STATUS SHOW INDEX會(huì)返回表索引信息。其格式與ODBC中的SQLStatistics調(diào)用相似。
執(zhí)行時(shí)間約 10分鐘 ,查看執(zhí)行計(jì)劃如下:全部都是全表掃描,根據(jù)MySQL聯(lián)表查詢的算法 Nested-Loop Join ,MySQL查詢的結(jié)果集是3張表的笛卡爾積,所以效率特別低。耗時(shí)變成 20毫秒 給Where條件建立索引,并不一定會(huì)使用。
1、如果我們沒(méi)有指定,Mysql就會(huì)自動(dòng)找一個(gè)非空的唯一索引當(dāng)主鍵。如果沒(méi)有這種字段,Mysql就會(huì)創(chuàng)建一個(gè)大小為6字節(jié)的自增主鍵。
2、表越大,花費(fèi)的時(shí)間越多。如果表中查詢的列有一個(gè)索引,MySQL能快速到達(dá)一個(gè)位置去搜尋到數(shù)據(jù)文件的中間,沒(méi)有必要看所有數(shù)據(jù)。大多數(shù)MySQL索引(PRIMARY KEY、UNIQUE、INDEX和FULLTEXT)在B樹(shù)中存儲(chǔ)。
3、相反,MySql 會(huì)掃描所有記錄,即要查詢 1000。以索引將查詢速度提高 100 倍。索引分單列索引和組合索引單列索引:即一個(gè)索引只包含單個(gè)列,一個(gè)表可以有多個(gè)單列索引,但這不是組合索引。
4、下面是創(chuàng)建這個(gè)多列索引的SQL命令: ALTER TABLE people ADD INDEX fname_lname_age (firstname,lastname,age); 由于索引文件以B-樹(shù)格式保存,MySQL能夠立即轉(zhuǎn)到合適的firstname,然后再轉(zhuǎn)到合適的lastname,最后轉(zhuǎn)到合適的age。
5、MySQL索引的類型 普通索引這是最基本的索引,它沒(méi)有任何限制,比如上文中為title字段創(chuàng)建的索引就是一個(gè)普通索引,MyIASM中默認(rèn)的BTREE類型的索引,也是我們大多數(shù)情況下用到的索引。
聚簇索引:也可以稱為主鍵索引,是一種數(shù)據(jù)存儲(chǔ)方式,B+樹(shù)結(jié)構(gòu),一張表只能有一個(gè)聚簇索引;非聚簇索引:顧名思義,不是聚簇索引。
索引有兩種存儲(chǔ)類型,包括B型樹(shù)索引和哈希索引。索引可以提高查詢的速度,但是創(chuàng)建和維護(hù)索引需要耗費(fèi)時(shí)間,同時(shí)也會(huì)影響插入的速度,如果需要插入大量的數(shù)據(jù)時(shí),最好是先刪除索引,插入數(shù)據(jù)后再建立索引。
mysqlmysql索引類型 MySQL 中,索引類型是:普通索引、唯一索引、主鍵索引、組合索引。
當(dāng)前文章:mysql索引字段怎么看 mysql中怎么查看索引
轉(zhuǎn)載來(lái)于:http://jinyejixie.com/article17/dgihigj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、響應(yīng)式網(wǎng)站、網(wǎng)站導(dǎo)航、靜態(tài)網(wǎng)站、、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)