MySQL中索引的使用

2021-09-25 03:36:35 字數 2609 閱讀 7446

語法:

create  table  table_name

(    屬性名 資料型別[約束條件],

屬性名 資料型別[約束條件],

......

[unique|fulltext|spatial] index }key[別名](屬性名[asc|desc])

);

建立普通索引

#普通索引

create table score

( id int auto_increment primary key not null,

name varchar(30) not null,

math int not null,

english int not null,

chinese int not null,

index(id)

);show create table score;

建立唯一索引

#唯一索引

create table t_address

( id int auto_increment primary key not null,

name varchar(30),

address varchar(200),

unique index uq_address(id asc)

);show create table t_address

建立全文索引

#全文索引

create table cards

(id int auto_increment primary key not null,

name varchar(30),

number int,

info varchar(50),

fulltext key ftk_number(number)

)engine=myisam default charset=utf8;

mysql自帶的全文索引只能用於資料庫引擎為myisam的資料表,如果是其他資料引擎,則全文索引不會生效。此外,mysql自帶的全文索引只能對英文進行全文檢索,目前無法對中文進行全文檢索。如果需要對包含中文在內的文字資料進行全文檢索,我們需要採用sphinx(斯芬克斯)/coreseek技術來處理中文。

目前,使用mysql自帶的全文索引時,如果查詢字串的長度過短將無法得到期望的搜尋結果。mysql全文索引所能找到的詞預設最小長度為4個字元。另外,如果查詢的字串包含停止詞,那麼該停止詞將會被忽略。

如果可能,請盡量先建立表並插入所有資料後再建立全文索引,而不要在建立表時就直接建立全文索引,因為前者比後者的全文索引效率要高。

建立單列索引

#單列索引

create table telephone

( id int auto_increment primary key not null,

name varchar(30),

tel varchar(30),

index idx_tel(tel(20))

);

建立多列索引

#多列索引

create table information

( id int primary key auto_increment not null,

name varchar(30) not null,

*** varchar(30) not null,

birthday varchar(30) not null,

index idx_name_***(name,***)

);

建立空間索引

#空間索引

create table list

( id int primary key auto_increment not null,

goods geometry not null,

spatial index spt(goods)

)engine=myisam;

語法:

create [unique|fulltext|spatial] index index_name

on table_name(屬性[(length)][asc|desc]);

#在已有的表上建立索引

create index idx_id on t1(id)

語法:

alter table table_name add[unique|fulltext|spatial] index index_name(屬性名[(length)][asc|desc]);

#新增索引

alter table t1

add unique index idx_name(name(10))

語法:

drop index index_name on table_name

#刪除索引

drop index idx_name on t1

mysql中索引的使用

索引是加速查詢的主要手段,特別對於涉及多個表的查詢更是如此。本節中,將介紹索引的作用 特點,以及建立和刪除索引的語法。索引是快速定位資料的技術,首先通過乙個示例來了解其含義及作用,詳細的介紹請參考第14章。1 索引示例 假設對於10.3節所建的表,各個表上都沒有索引,資料的排列也沒有規律,如表13....

mysql中索引的使用

我們在使用sql時,在遇到sql效能下降 執行時間長時,就需要考慮用索引來幫我們解決問題。如,資料過多,關聯太多的表等。建立索引 create index idx name age address on student name,age,address create table student id...

mysql欄位簡索引 MySQL中索引使用簡例

一張表最多不超過4個索引 某個欄位的值離散度越高,該字段越適合做索引的關鍵字。占用儲存空間少的字段更適合選做索引的關鍵字。較頻繁的作為where查詢條件的字段應該建立索引,分組字段或者排序字段應該建立索引,兩個表的連線字段應該建立索引。更新頻繁的字段不適合做索引,不會出現在where中的字段不應該建...