下文我給大家簡單講講關(guān)于使用MySQL索引的操作方法,大家之前了解過相關(guān)類似主題內(nèi)容嗎?感興趣的話就一起來看看這篇文章吧,相信看完使用mysql索引的操作方法對(duì)大家多少有點(diǎn)幫助吧。
成都創(chuàng)新互聯(lián)是一家以重慶網(wǎng)站建設(shè)公司、網(wǎng)頁設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、成都網(wǎng)站營銷、小程序App開發(fā)等移動(dòng)開發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為門窗定制等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。
mysql索引的目的在于提高查詢效率,可以類比字典,如果要查“mysql”這個(gè)單詞,我們肯定需要定位到m字母,然后從下往下找到y(tǒng)字母,再找到剩下的sql。如果沒有索引,那么你可能需要把所有單詞看一遍才能找到你想要的。
在創(chuàng)建索引時(shí),需要考慮哪些列會(huì)用于 SQL 查詢,然后為這些列創(chuàng)建一個(gè)或多個(gè)索引。事實(shí)上,索引也是一種表,保存著主鍵或索引字段,以及一個(gè)能將每個(gè)記錄指向?qū)嶋H表的指針。數(shù)據(jù)庫用戶是看不到索引的,它們只是用來加速查詢的。數(shù)據(jù)庫搜索引擎使用索引來快速定位記錄。
mysql有四種索引(主鍵索引/普通索引/全文索引/唯一索引)
1.索引的添加
1.1主鍵索引的添加
當(dāng)一張表,把某個(gè)列設(shè)為主鍵的時(shí)候,則該列就是主鍵索引
create table a( id int primary key auto_increment, name varchar(20) not null default '' ); //這里id就是表的主鍵
如果當(dāng)創(chuàng)建表時(shí)沒有指定主鍵索引,也可以在創(chuàng)建表之后添加:
alter table table_name add primary key (column name);
1.2普通索引
普通索引一般是在建表后再添加的,
create index 索引名 on table_name(column1,column2); alter table table_name add index 索引名(column1,column2);
1.3全文索引
首先,全文索引主要針對(duì)文本文件,比如文章,標(biāo)題,全文索引只有MyISAM有效(mysql5.6之后InnoDB也支持了全文索引)
create table c( id int primary key auto_increment , title varchar(20), content text, fulltext(title,content) )engine=myisam charset utf8; insert into c(title,content) values ('MySQL Tutorial','DBMS stands for DataBase ...'), ('How To Use MySQL Well','After you went through a ...'), ('Optimizing MySQL','In this tutorial we will show ...'), ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'), ('MySQL vs. YourSQL','In the following database comparison ...'), ('MySQL Security','When configured properly, MySQL ...');
使用全文索引常見的錯(cuò)誤:
select * from c where content like "%mysql%";
這里并不會(huì)使用全文索引,可以用explain進(jìn)行查看。正確用法:
select * from c where match(title,content) against ('MYSQL');
備注:
1. 在mysql中fulltext 索引只針對(duì) myisam生效
2. mysql自己提供的fulltext針對(duì)英文生效->sphinx(coreseek)技術(shù)處理中文
3. 使用方法是 match(字段名..) against(‘關(guān)鍵字’)
1.4唯一索引
create table d(id int primary key auto_increment , name varchar(32) unique)
d表中name就是唯一索引,唯一索引可以有多個(gè)null,不能是重復(fù)的內(nèi)容
相比主鍵索引,主鍵字段不能為null,也不能重復(fù)
2. 查詢索引
show indexes from table_name; show keys from table_name;
3.刪除索引
alter table table_name drop index 索引名;
大家覺得使用mysql索引的操作方法這篇文章怎么樣,是否有所收獲。如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。