大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

MySQL數據庫概述及數據準備
MySQL數據庫常用命令
MySQL數據庫查看表結構
MySQL查詢字段
MySQL條件查詢
MySQL排序
MySQL函數
MySQL分組函數/聚合函數/多行處理函數
MySQL分組查詢
MySQL連接查詢
MySQL子查詢
MySQL UNION
MySQL中limit的用法
MySQL表
MySQL存儲引擎
MySQL事務
MySQL索引
MySQL視圖
MySQL DBA命令
MySQL數據庫設計的三大范式
MySQL數據庫練習題

MySQL索引

索引原理

索引被用來快速找出在一個列上用一特定值的行。沒有索引,MySQL不得不首先以第一條記錄開始,然后讀完整個表直到它找出相關的行。表越大,花費時間越多。對于一個有序字段,可以運用二分查找(Binary Search),這就是為什么性能能得到本質上的提高。MYISAM和INNODB都是用B+Tree作為索引結構。

(主鍵,unique 都會默認的添加索引)

索引的應用

1、創建索引

如果未使用索引,我們查詢 工資大于 1500的會執行全表掃描。

什么時候需要給字段添加索引:

● 表中該字段中的數據量龐大

● 經常被檢索,經常出現在where子句中的字段

● 經常被DML操作的字段不建議添加索引

索引等同于一本書的目錄

主鍵會自動添加索引,所以盡量根據主鍵查詢效率較高。

如經常根據sal進行查詢,并且遇到了性能瓶頸,首先查看程序是否存算法問題,再考慮對sal建立索引,建立索引如下:

● create unique index 索引名 on 表名(列名); 

create unique index u_ename on emp(ename);

● alter table 表名 add unique index 索引名 (列名); 

create index test_index on emp (sal);

2、查看索引

show index from emp;

3、使用索引

注意一定不可以用select * … 可以看到type!=all了,說明使用了索引

explain select sal from emp where sal > 1500;

條件中的sal使用了索引

如下圖:假如我們要查找sal大于1500的所有行,那么可以掃描索引,索引時排序的,結果得出7行,我們知道不會再有匹配的記錄,可以退出了。如果查找一個值,它在索引表中某個中間點以前不會出現,那么也有找到其第一個匹配索引項的定位算法,而不用進行表的順序掃描(如二分查找法)這樣,可以快速定位到第一個匹配的值,以節省大量搜索時間。數據庫利用了各種各樣的快速定位索引值的技術,通常這些技術都屬于DBA的工作。

4、刪除索引

DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
其中,前兩條語句是等價的,刪除掉table_name中的索引index_name。
第3條語句只在刪除PRIMARY KEY索引時使用,因為一個表只可能有一個PRIMARY KEY索引, 
mysql> ALTER TABLE EMP DROP INDEX test_index;

刪除后就不再使用索引了,查詢會執行全表掃描。

全部教程
主站蜘蛛池模板: 91手机在线 | 日本一区中文字幕 | 欧美激情 在线 | 欧美亚洲一二三区 | 欧美成人久久久 | 久草观看视频 | 久久婷婷一区二区三区 | 韩国精品欧美一区二区三区 | 日日夜夜亚洲 | 久久天堂 | 很黄的网站在线观看 | 高清国产一区二区三区 | 伊人首页| 女人18女人毛片 | 亚洲欧美精品中字久久99 | 五月婷婷激情四射 | 国产伦理一区 | 国产一区二区亚洲精品天堂 | 久久伊人成人网 | 久青草中文字幕精品视频 | 久久桃花 | 日本不卡中文字幕 | 中文字幕不卡 | 福利在线视频观看 | 久久亚洲精品玖玖玖玖 | 91视频精品 | 狠狠色狠狠色综合网 | 国产成人综合亚洲一区 | 成人免费视频国产 | 四虎影视在线免费观看 | 欧美日屁 | 91亚洲精品 | 手机看片福利日韩欧美看片 | 天天做天天爽爽快快 | 久操视频免费 | 午夜免费福利影院 | 奇米影视亚洲狠狠色 | 国产高清一级毛片在线不卡 | 在线婷婷 | 成年人网站在线 | 妇女网站爱嘿嘿视频免费观看 |