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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

013_索引

發布時間:2025/5/22 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 013_索引 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 索引介紹

1.1. 您可以在表中創建索引, 以便更加快速高效地查詢數據。

1.2. 打個比方, 如果合理的設計且使用索引的MySQL是一輛蘭博基尼的話, 那么沒有設計和使用索引的MySQL就是一個人力三輪車。

1.3. 用戶無法看到索引, 它們只能被用來加速搜索/查詢。

1.4. 索引分單列索引和組合索引。單列索引, 即一個索引只包含單個列。組合索引, 即一個索引包含多個列。

1.5. 創建索引時, 你需要確保該索引是應用在SQL查詢語句的條件(一般作為where子句的條件)。

1.6. 實際上, 索引也是一張表, 該表保存了主鍵與索引字段, 并指向實體表的記錄。

1.7. 上面都在說使用索引的好處, 但過多的使用索引將會造成濫用。因此索引也會有它的缺點: 雖然索引大大提高了查詢速度, 同時卻會降低更新表的速度, 如對表進行insert、update和delete。因為更新表時, MySQL不僅要保存數據, 還要保存一下索引文件。

1.8. 建立索引會占用磁盤空間的索引文件。

2. 普通索引

2.1. 這是最基本的索引, 它沒有任何限制。

2.2. 創建普通索引

create index `indexname` on `tablename` (`columnname`);

2.3. 修改表結構添加普通索引

alter table `tablename` add index `indexname` (`columnname`);

2.4. 創建表的時候直接指定

create table `tablename` ( ?

`id` int(11) not null, ??

`username` varchar(16) not null, ??

index `indexname` (`username`) ??

); ?

3. 唯一索引

3.1. 唯一索引與普通索引類似, 不同的就是索引列的值必須唯一, 但允許有空值。如果是組合索引, 則列值的組合必須唯一。

3.2. 創建唯一索引

create unique `indexname` on `tablename` (`columnname`);

3.3. 修改表結構添加唯一索引

alter table `tablename` add unique index `indexname` (`columnname`);

3.4. 創建表的時候直接指定

create table `tablename` ( ?

`id` int(11) not null, ??

`username` varchar(16) not null, ??

unique `indexname` (`username`) ??

); ?

4. 刪除索引

4.1. drop index `indexname` on `tablename`;

4.2. alter table `tablename` drop index `indexname`;

5. 顯示索引信息

5.1. 你可以使用show index命令來列出表中的相關的索引信息。可以通過添加\G來格式化輸出信息。

show index from `tablename`; \G

6. 索引查詢

6.1. 創建一張Persons表, 同時插入400多萬條數據。

drop table if exists `persons`; create table `persons` (`id` int(11) not null,`lastname` varchar(255) not null,`firstname` varchar(255) default null,`address` varchar(255) default null,`city` varchar(255) default null ) engine=innodb default charset=utf8;insert into `persons` values ('1', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('2', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('3', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('4', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('5', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('6', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('7', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('8', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('9', 'san', 'zhang', 'china', 'luoyang'); ...... insert into `persons` values ('3999990', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('3999991', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('3999992', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('3999993', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('3999994', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('3999995', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('3999996', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('3999997', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('3999998', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('3999999', 'san', 'zhang', 'china', 'luoyang'); insert into `persons` values ('4000000', 'san', 'zhang', 'china', 'luoyang');

6.2. 沒有使用索引, 查詢Persons表的第3000000條數據, 耗時3秒多。

6.3. 給Persons表添加索引。

6.4. 添加索引后, 再次查詢Persons表的第3000000條數據, 耗時0秒。

總結

以上是生活随笔為你收集整理的013_索引的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。