這篇文章主要講解了“MySQL中索引的語法以及索引的優(yōu)缺點(diǎn)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“MySQL中索引的語法以及索引的優(yōu)缺點(diǎn)”吧!
十年的元江縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整元江縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“元江縣網(wǎng)站設(shè)計(jì)”,“元江縣網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
創(chuàng)建索引
在創(chuàng)建表的時(shí)候添加索引
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) );
在創(chuàng)建表以后添加索引
ALTER TABLE my_table ADD [UNIQUE] INDEX index_name(column_name);或者CREATE INDEX index_name ON my_table(column_name);
注意:
1、索引需要占用磁盤空間,因此在創(chuàng)建索引時(shí)要考慮到磁盤空間是否足夠
2、創(chuàng)建索引時(shí)需要對表加鎖,因此實(shí)際操作中需要在業(yè)務(wù)空閑期間進(jìn)行
根據(jù)索引查詢
具體查詢:
SELECT * FROM table_name WHERE column_1=column_2;(為column_1建立了索引)
或者模糊查詢
SELECT * FROM table_name WHERE column_1 LIKE '%三'
SELECT * FROM table_name WHERE column_1 LIKE '三%'
SELECT * FROM table_name WHERE column_1 LIKE '%三%'
SELECT * FROM table_name WHERE column_1 LIKE '_好_'
如果要表示在字符串中既有A又有B,那么查詢語句為:
SELECT * FROM table_name WHERE column_1 LIKE '%A%' AND column_1 LIKE '%B%';
SELECT * FROM table_name WHERE column_1 LIKE '[張李王]三'; //表示column_1中有匹配張三、李三、王三的都可以
SELECT * FROM table_name WHERE column_1 LIKE '[^張李王]三'; //表示column_1中有匹配除了張三、李三、王三的其他三都可以
//在模糊查詢中,%表示任意0個(gè)或多個(gè)字符;_表示任意單個(gè)字符(有且僅有),通常用來限制字符串長度;[]表示其中的某一個(gè)字符;[^]表示除了其中的字符的所有字符
或者在全文索引中模糊查詢
SELECT * FROM table_name WHERE MATCH(content) AGAINST('word1','word2',...);
刪除索引
DROP INDEX my_index ON tablename;或者ALTER TABLE table_name DROP INDEX index_name;
查看表中的索引
SHOW INDEX FROM tablename
查看查詢語句使用索引的情況
//explain 加查詢語句explain SELECT * FROM table_name WHERE column_1='123';
優(yōu)勢:可以快速檢索,減少I/O次數(shù),加快檢索速度;根據(jù)索引分組和排序,可以加快分組和排序;
劣勢:索引本身也是表,因此會(huì)占用存儲空間,一般來說,索引表占用的空間的數(shù)據(jù)表的1.5倍;索引表的維護(hù)和創(chuàng)建需要時(shí)間成本,這個(gè)成本隨著數(shù)據(jù)量增大而增大;構(gòu)建索引會(huì)降低數(shù)據(jù)表的修改操作(刪除,添加,修改)的效率,因?yàn)樵谛薷臄?shù)據(jù)表的同時(shí)還需要修改索引表;
常見的索引類型有:主鍵索引、唯一索引、普通索引、全文索引、組合索引
1、主鍵索引:即主索引,根據(jù)主鍵pk_clolum(length)建立索引,不允許重復(fù),不允許空值;
ALTER TABLE 'table_name' ADD PRIMARY KEY pk_index('col');
2、唯一索引:用來建立索引的列的值必須是唯一的,允許空值
ALTER TABLE 'table_name' ADD UNIQUE index_name('col');
3、普通索引:用表中的普通列構(gòu)建的索引,沒有任何限制
ALTER TABLE 'table_name' ADD INDEX index_name('col');
4、全文索引:用大文本對象的列構(gòu)建的索引(下一部分會(huì)講解)
ALTER TABLE 'table_name' ADD FULLTEXT INDEX ft_index('col');
5、組合索引:用多個(gè)列組合構(gòu)建的索引,這多個(gè)列中的值不允許有空值
ALTER TABLE 'table_name' ADD INDEX index_name('col1','col2','col3');
*遵循“最左前綴”原則,把最常用作為檢索或排序的列放在最左,依次遞減,組合索引相當(dāng)于建立了col1,col1col2,col1col2col3三個(gè)索引,而col2或者col3是不能使用索引的。
*在使用組合索引的時(shí)候可能因?yàn)榱忻L度過長而導(dǎo)致索引的key太大,導(dǎo)致效率降低,在允許的情況下,可以只取col1和col2的前幾個(gè)字符作為索引
ALTER TABLE 'table_name' ADD INDEX index_name(col1(4),col2(3));
表示使用col1的前4個(gè)字符和col2的前3個(gè)字符作為索引
感謝各位的閱讀,以上就是“MySQL中索引的語法以及索引的優(yōu)缺點(diǎn)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對MySQL中索引的語法以及索引的優(yōu)缺點(diǎn)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
網(wǎng)站名稱:MySQL中索引的語法以及索引的優(yōu)缺點(diǎn)
當(dāng)前網(wǎng)址:http://m.newbst.com/article6/jhsiog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、虛擬主機(jī)、網(wǎng)站建設(shè)、域名注冊、全網(wǎng)營銷推廣、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(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)