首頁  >  文章  >  資料庫  >  mysql索引如何使用

mysql索引如何使用

藏色散人
藏色散人原創
2019-05-10 09:22:107899瀏覽

mysql索引的使用方法:【alter table table_name add index 索引名(column)】,表示新增普通索引。 mysql索引的目的在於提高查詢效率。

mysql索引如何使用

mysql索引的目的在於提高查詢效率,可以類比字典,如果要查「mysql」這個單詞,我們肯定需要定位到m字母,然後從下往下找到y字母,再找到剩下的sql。如果沒有索引,那麼你可能需要把所有單字看一遍才能找到你想要的。

(推薦教學:mysql影片教學

在建立索引時,需要考慮哪些欄位會用於SQL 查詢,然後為這些列建立一個或多個索引。事實上,索引也是一種表,保存著主鍵或索引字段,以及一個能將每個記錄指向實際表的指標。資料庫使用者是看不到索引的,它們只是用來加速查詢的。資料庫搜尋引擎使用索引來快速定位記錄。

mysql有四個索引(主鍵索引/普通索引/全文索引/唯一索引)

#1.索引的新增 

1.1主鍵索引的新增

當一張表,把某個列設為主鍵的時候,則該列就是主鍵索引

create table a(  
id int primary key auto_increment,  
name varchar(20) not null default ''  
);  
//这里id就是表的主键

如果當建立表時沒有指定主鍵索引,也可以在建立表之後新增:

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全文索引

首先,全文索引主要針對文本文件,例如文章,標題,全文索引只有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 ...');

使用全文索引常見的錯誤:

select * from c where content like "%mysql%";

這裡並不會使用全文索引,可以用explain進行查看。正確用法:

select *  from c where match(title,content) against ('MYSQL');

備註:

1.  在mysql中fulltext 索引只針對myisam生效

2.  mysql自己提供的fulltext針對英文生效->sphinx( coreseek)技術處理中文

3.  使用方法是match(字段名..) against('關鍵字')

1.4唯一索引

create table d(id int primary key auto_increment , name varchar(32) unique)

d表中name就是唯一索引,唯一索引可以有多個null,不能是重複的內容

比較主鍵索引,主鍵欄位不能為null,也不能重複

2.查詢索引

show indexes from table_name;
show keys from table_name;

3.刪除索引

alter table table_name drop index 索引名;

以上是mysql索引如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn