91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中索引的語法以及索引的優缺點

發布時間:2021-09-15 18:17:56 來源:億速云 閱讀:117 作者:chen 欄目:大數據

這篇文章主要講解了“MySQL中索引的語法以及索引的優缺點”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MySQL中索引的語法以及索引的優缺點”吧!

一、MySQL中索引的語法

創建索引

在創建表的時候添加索引

CREATE TABLE mytable(      ID INT NOT NULL,       username VARCHAR(16) NOT NULL,      INDEX [indexName] (username(length))  );

在創建表以后添加索引

ALTER TABLE my_table ADD [UNIQUE] INDEX index_name(column_name);或者CREATE INDEX index_name ON my_table(column_name);

注意:

1、索引需要占用磁盤空間,因此在創建索引時要考慮到磁盤空間是否足夠

2、創建索引時需要對表加鎖,因此實際操作中需要在業務空閑期間進行

根據索引查詢

具體查詢: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個或多個字符;_表示任意單個字符(有且僅有),通常用來限制字符串長度;[]表示其中的某一個字符;[^]表示除了其中的字符的所有字符
或者在全文索引中模糊查詢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';

二、索引的優缺點

優勢:可以快速檢索,減少I/O次數,加快檢索速度;根據索引分組和排序,可以加快分組和排序;

劣勢:索引本身也是表,因此會占用存儲空間,一般來說,索引表占用的空間的數據表的1.5倍;索引表的維護和創建需要時間成本,這個成本隨著數據量增大而增大;構建索引會降低數據表的修改操作(刪除,添加,修改)的效率,因為在修改數據表的同時還需要修改索引表;

三、索引的分類

常見的索引類型有:主鍵索引、唯一索引、普通索引、全文索引、組合索引

1、主鍵索引:即主索引,根據主鍵pk_clolum(length)建立索引,不允許重復,不允許空值

ALTER TABLE 'table_name' ADD PRIMARY KEY pk_index('col');

2、唯一索引:用來建立索引的列的值必須是唯一的,允許空值

ALTER TABLE 'table_name' ADD UNIQUE index_name('col');

3、普通索引:用表中的普通列構建的索引,沒有任何限制

ALTER TABLE 'table_name' ADD INDEX index_name('col');

4、全文索引:用大文本對象的列構建的索引(下一部分會講解)

ALTER TABLE 'table_name' ADD FULLTEXT INDEX ft_index('col');

5、組合索引:用多個列組合構建的索引,這多個列中的值不允許有空值

ALTER TABLE 'table_name' ADD INDEX index_name('col1','col2','col3');

*遵循“最左前綴”原則,把最常用作為檢索或排序的列放在最左,依次遞減,組合索引相當于建立了col1,col1col2,col1col2col3三個索引,而col2或者col3是不能使用索引的。

*在使用組合索引的時候可能因為列名長度過長而導致索引的key太大,導致效率降低,在允許的情況下,可以只取col1和col2的前幾個字符作為索引

ALTER TABLE 'table_name' ADD INDEX index_name(col1(4),col2(3));

表示使用col1的前4個字符和col2的前3個字符作為索引

感謝各位的閱讀,以上就是“MySQL中索引的語法以及索引的優缺點”的內容了,經過本文的學習后,相信大家對MySQL中索引的語法以及索引的優缺點這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兖州市| 汝阳县| 茂名市| 会东县| 梧州市| 乃东县| 巴楚县| 富裕县| 牙克石市| 许昌市| 崇左市| 梅河口市| 怀柔区| 城口县| 行唐县| 珠海市| 马边| 喀喇沁旗| 突泉县| 鄂州市| 广元市| 阿坝| 凤城市| 金溪县| 和政县| 西畴县| 庄浪县| 江北区| 辰溪县| 太湖县| 如东县| 翼城县| 波密县| 漯河市| 黑山县| 通海县| 合肥市| 江口县| 吉安县| 宣威市| 平陆县|