您好,登錄后才能下訂單哦!
下文我給大家簡(jiǎn)單講講關(guān)于使用mysql索引的操作方法,大家之前了解過(guò)相關(guān)類似主題內(nèi)容嗎?感興趣的話就一起來(lái)看看這篇文章吧,相信看完使用mysql索引的操作方法對(duì)大家多少有點(diǎn)幫助吧。
mysql索引的目的在于提高查詢效率,可以類比字典,如果要查“mysql”這個(gè)單詞,我們肯定需要定位到m字母,然后從下往下找到y(tǒng)字母,再找到剩下的sql。如果沒(méi)有索引,那么你可能需要把所有單詞看一遍才能找到你想要的。
在創(chuàng)建索引時(shí),需要考慮哪些列會(huì)用于 SQL 查詢,然后為這些列創(chuàng)建一個(gè)或多個(gè)索引。事實(shí)上,索引也是一種表,保存著主鍵或索引字段,以及一個(gè)能將每個(gè)記錄指向?qū)嶋H表的指針。數(shù)據(jù)庫(kù)用戶是看不到索引的,它們只是用來(lái)加速查詢的。數(shù)據(jù)庫(kù)搜索引擎使用索引來(lái)快速定位記錄。
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í)沒(méi)有指定主鍵索引,也可以在創(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 ...');
使用全文索引常見(jiàn)的錯(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 索引名;
大家覺(jué)得使用mysql索引的操作方法這篇文章怎么樣,是否有所收獲。如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。