如果沒有索引,MySQL將從第一行記錄開始,穿越整個(gè)表找到相應(yīng)的記錄,表越大,相應(yīng)的查詢的代價(jià)也就越大。如果針對查詢中的列有索引,MySQL就能在數(shù)據(jù)文件中快速確定需要查找的位置,再也不用穿越整個(gè)表來撈數(shù)據(jù)了。
成都創(chuàng)新互聯(lián)主營來鳳網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),來鳳h5小程序定制開發(fā)搭建,來鳳網(wǎng)站營銷推廣歡迎來鳳等地區(qū)企業(yè)咨詢
查看索引的語法格式如下:SHOW INDEX FROM 表名 [ FROM 數(shù)據(jù)庫名]語法說明如下:表名:指定需要查看索引的數(shù)據(jù)表名。數(shù)據(jù)庫名:指定需要查看索引的數(shù)據(jù)表所在的數(shù)據(jù)庫,可省略。
索引中的列序列號,從1開始。· Column_name 列名稱。· Collation 列以什么方式存儲在索引中。在MySQL中,有值‘A’(升序)或NULL(無分類)。· Cardinality 索引中唯一值的數(shù)目的估計(jì)值。
根據(jù)表名,查詢一張表的索引:select * from user_indexes where table_name=upper(表名)。根據(jù)索引號,查詢表索引字段:select * from user_ind_columns where index_name=(索引名)。
執(zhí)行時(shí)間約 10分鐘 ,查看執(zhí)行計(jì)劃如下:全部都是全表掃描,根據(jù)MySQL聯(lián)表查詢的算法 Nested-Loop Join ,MySQL查詢的結(jié)果集是3張表的笛卡爾積,所以效率特別低。耗時(shí)變成 20毫秒 給Where條件建立索引,并不一定會使用。
1、可以把索引比作新華字典的音序表。例如,要查“庫”字,如果不使用音序,就需要從字典的 400 頁中逐頁來找。但是,如果提取拼音出來,構(gòu)成音序表,就只需要從 10 多頁的音序表中直接查找。這樣就可以大大節(jié)省時(shí)間。
2、MySQL的復(fù)合索引可以創(chuàng)建多個(gè),每個(gè)復(fù)合索引可以包含一列或多列。復(fù)合索引使用的基本原則是左側(cè)對齊原則。
3、 修改為 k.update_time=2019-01-03 12:00:00 (從 變成 = )則會使用索引 idx_time 在建立索引的時(shí)候,會遇到 Table Metadata Lock 的問題,可以先 show processlist ,找到占用表鎖的連接,然后 kill 。
4、下面是創(chuàng)建這個(gè)多列索引的SQL命令: ALTER TABLE people ADD INDEX fname_lname_age (firstname,lastname,age); 由于索引文件以B-樹格式保存,MySQL能夠立即轉(zhuǎn)到合適的firstname,然后再轉(zhuǎn)到合適的lastname,最后轉(zhuǎn)到合適的age。
5、全文索引(FULLTEXT)全文索引只能創(chuàng)建在數(shù)據(jù)類型為VARCHAR或TEXT的列上,建立全文索引后,能夠在建立了全文索引的列上進(jìn)行全文查找。全文索引只能在MyISAM存儲引擎的表中創(chuàng)建。
如果我們創(chuàng)建了name列的索引,MySQL將在索引中排序name列,對于索引中的每一項(xiàng),MySQL在內(nèi)部為它保存一個(gè)數(shù)據(jù)文件中實(shí)際記錄所在位置的“指針”。
簡單來說,數(shù)據(jù)庫索引就是數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)!進(jìn)一步說則是該數(shù)據(jù)結(jié)構(gòu)中存儲了一張表中某一列的所有值,也就是說索引是基于數(shù)據(jù)表中的某一列創(chuàng)建的。
在數(shù)據(jù)庫表中,使用索引可以大大提高查詢速度。
MySQL索引的概念索引是一種特殊的文件(InnoDB數(shù)據(jù)表上的索引是表空間的一個(gè)組成部分),它們包含著對數(shù)據(jù)表里所有記錄的引用指針。更通俗的說,數(shù)據(jù)庫索引好比是一本書前面的目錄,能加快數(shù)據(jù)庫的查詢速度。
索引的意義 ·索引在數(shù)據(jù)庫中的作用相當(dāng)于目錄在書籍中的作用類似,都用來提高查找信息的速度。
因?yàn)楦卤頃r(shí),MySQL不僅要保存數(shù)據(jù),還要保存一下索引文件。建立索引會占用磁盤空間的索引文件。
1、索引的工作原理要理解MySQL中索引的工作原理,最簡單的方法就是去看一看一本書的索引部分:比如你想在一本書中尋找某個(gè)主題,一般會先看書的索引目錄,找到對應(yīng)的章節(jié)、對應(yīng)的頁碼后就可以快速找到你想看的內(nèi)容。
2、查看索引的語法格式如下:SHOW INDEX FROM 表名 [ FROM 數(shù)據(jù)庫名]語法說明如下:表名:指定需要查看索引的數(shù)據(jù)表名。數(shù)據(jù)庫名:指定需要查看索引的數(shù)據(jù)表所在的數(shù)據(jù)庫,可省略。
3、SHOW KEYS是SHOW INDEX的同義詞。您也可以使用mysqlshow -k db_name tbl_name命令列舉一個(gè)表的索引。SHOW INNODB STATUS語法 SHOW INNODB STATUS SHOW INDEX會返回表索引信息。其格式與ODBC中的SQLStatistics調(diào)用相似。
當(dāng)前文章:mysql怎么看索引數(shù)據(jù) mysql查看索引
網(wǎng)站路徑:http://vcdvsql.cn/article32/dgocjpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、小程序開發(fā)、微信公眾號、域名注冊、網(wǎng)站改版、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)