索引( index )
生活随笔
收集整理的這篇文章主要介紹了
索引( index )
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
索引在龐大的數(shù)據(jù)庫上最能體現(xiàn)出作用,所謂索引就是根據(jù)需求將指定的列提取出來做索引表,可以顯著提高在查找數(shù)據(jù)方面的速度。
在索引的前提下還可以指定索引值是否唯一,索引值是單列或是多列索引。
?
根據(jù)索引類型,索引分為:
普通索引:
name,只能幫助查找 唯一索引: name,只能幫助查找,內(nèi)容不允許重復(fù),可以為null,但也限制唯一。 主鍵索引: name,只能幫助查找,內(nèi)容不允許重復(fù),不允許null,一張表只能有一個主鍵,但也可以通過unique進(jìn)行組合 組合索引: 多列共同組成索引,可以有如下模式,1 是不約束的就是說不唯一,2是唯一的 普通多列索引(name,email) 聯(lián)合唯一索引(name,email) 根據(jù)索引方式又分為: 覆蓋索引 當(dāng)查詢的數(shù)據(jù)是從索引表里面查找的,則是覆蓋索引 索引合并 將兩個單獨(dú)的索引放到一起,就是索引合并。 默認(rèn)的查找方式是全表掃描。 在創(chuàng)建表時創(chuàng)建索引: create table person(id int not null primary key auto_increment,name char(10) not null,age int not null,address varchar(100) not null,index index_name(name)); 普通索引: create index index_name on person(pname);?
刪除索引:
drop index_name on tableName;?查看索引:
show index from tableName;?
唯一索引:
建表時創(chuàng)建唯一索引:
create table person(id int not null primary key auto_increment,name char(10) not null,age int not null,address varchar(100) not null,unique index_name(name));創(chuàng)建唯一索引:
creae unique index index_name on tableName(ColumnName);? 刪除唯一索引:
?drop unique index index_name on tabeName;?
?
?
主鍵索引:
創(chuàng)建表時創(chuàng)建索引:
create table in1(nid int not null auto_increment primary key,name varchar(32) not null,email varchar(64) not null,extra text,index ix_name (name) )ORcreate table in1(nid int not null auto_increment,name varchar(32) not null,email varchar(64) not null,extra text,primary key(ni1),index ix_name (name) )創(chuàng)建表 + 創(chuàng)建主鍵?
創(chuàng)建索引:
?alter table tableName primary key(ColumnName);?
刪除索引:
方式一: alter table tableName drop primary key;方式二: alter table tableName modify ColumnName int,drop primary key;
?
組合索引:
設(shè)有如下表:
create table tb1(id int not null primary key auto_incremet,name char(10) not null,age int(2) not null,other text)engine=innoDB default charset=utf8;創(chuàng)建組合索引:
?create index index_name on tableName(columnName1,columnName2);?
如上創(chuàng)建組合索引之后,查詢:
- name and email ?-- 使用索引
- name ? ? ? ? ? ? ? ? -- 使用索引
- email ? ? ? ? ? ? ? ? -- 不使用索引
注意:對于同時搜索n個條件時,組合索引的性能好于多個單一索引合并。
?
other:
explain? 關(guān)鍵字可以查看查詢語句是通過何種方式查找數(shù)據(jù)。 explain select * from person where xx=xx; 如果type列示 all則表示全表掃描 如果是ref 則是通過索引查找的 all 表示 全表掃描 ref 表示 普通索引查找 const 唯一索引查找 /? 主鍵索引也是const 組合索引 表示 在全表掃描模式下,如果想達(dá)到索引效果,可以用limit 1; 如果只要求一條數(shù)據(jù)的話。limit 1 表示取得一條數(shù)據(jù)后就返回。 在 like 模式下, 如果 "%xx" 模式一般不走索引模式,因?yàn)榍熬Y為% 表示一切皆有可能, 如果要走索引模式 必須為: “xx%” reverse(列名) 也一樣不走模式。除非是值 reverse(value) 對于比較運(yùn)算符 來說 一般除了大于 和 不等于 不走索引外,其余的一般都走索引。 對于 or 運(yùn)算符 ,只有 當(dāng)or 兩邊的索引都是索引才走索引,否則不走。?
轉(zhuǎn)載于:https://www.cnblogs.com/dontgiveup/p/9380229.html
總結(jié)
以上是生活随笔為你收集整理的索引( index )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统——银行家算法(Banker&#
- 下一篇: MPEG-4与H.264的区别 , 编码