日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

索引( index )

發(fā)布時(shí)間:2023/12/13 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 索引( index ) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

索引在龐大的數(shù)據(jù)庫上最能體現(xiàn)出作用,所謂索引就是根據(jù)需求將指定的列提取出來做索引表,可以顯著提高在查找數(shù)據(jù)方面的速度。

在索引的前提下還可以指定索引值是否唯一,索引值是單列或是多列索引。

?

根據(jù)索引類型,索引分為:

  普通索引:

name,只能幫助查找 唯一索引: name,只能幫助查找,內(nèi)容不允許重復(fù),可以為null,但也限制唯一。 主鍵索引: name,只能幫助查找,內(nèi)容不允許重復(fù),不允許null,一張表只能有一個(gè)主鍵,但也可以通過unique進(jìn)行組合 組合索引: 多列共同組成索引,可以有如下模式,1 是不約束的就是說不唯一,2是唯一的 普通多列索引(name,email) 聯(lián)合唯一索引(name,email) 根據(jù)索引方式又分為:  覆蓋索引 當(dāng)查詢的數(shù)據(jù)是從索引表里面查找的,則是覆蓋索引 索引合并 將兩個(gè)單獨(dú)的索引放到一起,就是索引合并。 默認(rèn)的查找方式是全表掃描。 在創(chuàng)建表時(shí)創(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;

?

唯一索引:

  建表時(shí)創(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)建表時(shí)創(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 ? ? ? ? ? ? ? ? -- 不使用索引

注意:對(duì)于同時(shí)搜索n個(gè)條件時(shí),組合索引的性能好于多個(gè)單一索引合并。

?

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) 對(duì)于比較運(yùn)算符 來說 一般除了大于 和 不等于 不走索引外,其余的一般都走索引。 對(duì)于 or 運(yùn)算符 ,只有 當(dāng)or 兩邊的索引都是索引才走索引,否則不走。

?

轉(zhuǎn)載于:https://www.cnblogs.com/dontgiveup/p/9380229.html

總結(jié)

以上是生活随笔為你收集整理的索引( index )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。