mysql四種索引
四種索引(主鍵索引/唯一索引/全文索引/普通索引)
- 新增
1.1主鍵索引新增
當一張表,把某個列設為主鍵的時候,則該列就是主鍵索引
create table aaa
(id int unsigned primary key auto_increment ,
name varchar(32) not null defaul ‘’);
這是id 列就是主鍵索引.
如果你建立表時,沒有指定主鍵索引,也可以在建立表後,在新增, 指令:
alter table 表名 add primary key (列名);
舉例:
create table bbb (id int , name varchar(32) not null default ‘’);
alter table bbb add primary key (id);
1.2普通索引
一般來說,普通索引的建立,是先建立表,然後在建立普通索引
比如:
create table ccc(
id int unsigned,
name varchar(32)
)
create index 索引名 on 表 (列1,列名2);
1.3建立全文索引
全文索引,主要是針對對檔案,文字的檢索, 比如文章, 全文索引針對MyISAM有用.
建立 :
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
)engine=myisam charset utf8;
INSERT INTO articles (title,body) 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 articles where body like ‘%mysql%’; 【不會使用到全文索引,具體原因看索引失效文章】
證明:
explain select * from articles where body like ‘%mysql%’ 【explain的解釋看explain的文章】
正確的用法是:
select * from articles where match(title,body) against(‘database’); 【可以】
☞ 說明:
- 在mysql中fulltext 索引只針對 myisam生效
- mysql自己提供的fulltext針對英文生效->sphinx (coreseek) 技術處理中文
- 使用方法是 match(欄位名..) against(‘關鍵字’)
- 全文索引一個 叫 停止詞, 因為在一個文字中,建立索引是一個無窮大的數,因此,對一些常用詞和字元,就不會建立,這些詞,稱為停止詞.
1.4唯一索引
①當表的某列被指定為unique約束時,這列就是一個唯一索引
create table ddd(id int primary key auto_increment , name varchar(32) unique);
這時, name 列就是一個唯一索引.
unique欄位可以為NULL,並可以有多NULL, 但是如果是具體內容,則不能重複.
主鍵欄位,不能為NULL,也不能重複.
②在建立表後,再去建立唯一索引
create table eee(id int primary key auto_increment, name varchar(32));
create unique index 索引名 on 表名 (列表..);
查詢索引
desc 表名 【該方法的缺點是: 不能夠顯示索引名.】
show index(es) from 表名
show keys from 表名
刪除
alter table 表名 drop index 索引名;
如果刪除主鍵索引。
alter table 表名 drop primary key [這裡有一個小問題]
修改
先刪除,再重新建立.
為什麼建立索引後,速度就會變快?
相關文章
- 【MySQL】MySQL(四)儲存引擎、索引、鎖、叢集MySql儲存引擎索引
- MySQL 四種新增語句MySql
- mysql 聯合索引的兩種特殊場景MySql索引
- MYSQL索引失效的各種情況小結MySql索引
- 修改MySQL密碼的四種方法MySql密碼
- mysql索引之字首索引MySql索引
- ElasticSearch 索引 VS MySQL 索引Elasticsearch索引MySql
- MySQL 索引MySql索引
- [Mysql]索引MySql索引
- mysql索引MySql索引
- MySQL — 索引MySql索引
- MySQL四種日誌binlog/redolog/relaylog/undologMySql
- Mysql 四種事務隔離級別MySql
- 簡單介紹MySQL索引失效的幾種情況MySql索引
- MySQL 字串索引和字首索引MySql字串索引
- MySQL索引系列:全文索引MySql索引
- MySQL的索引MySql索引
- Mysql索引使用MySql索引
- MySQL InnoDB 索引MySql索引
- MySQL索引原理MySql索引
- MySQL 二 索引MySql索引
- MySQL 索引 +explainMySql索引AI
- MySQL 索引初探MySql索引
- linux下檢視mysql版本的四種方法LinuxMySql
- MySQL 的四種事務隔離級別MySql
- MySQL 唯一索引和普通索引MySql索引
- mysql組合索引,abc索引命中MySql索引
- 【MySQL(2)| MySQL索引機制】MySql索引
- MySql(一) 淺析MySql索引MySql索引
- MYSQL索引及高效能索引策略MySql索引
- MySQL索引(二):建索引的原則MySql索引
- MySQL 聚簇索引 和覆蓋索引MySql索引
- MySQL 選錯索引MySql索引
- [Mysql]索引選型MySql索引
- MySQL複合索引MySql索引
- mysql基礎_索引MySql索引
- MySQL索引介紹MySql索引
- Mysql索引覆蓋MySql索引