成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

由淺入深講解MySQL數據庫索引的選擇性

數據庫 MySQL
MySQL數據庫因為其速度、可靠性和適應性而備受關注,很多人在數據庫才選擇上最終都是選擇了MySQL數據庫,如今MySQL數據庫索引是數據庫中很重要的一個部分,數據庫索引是數據庫的管理更為容易。

數據庫索引就好比是一本書的目錄部分,便于大家查找數據庫中數據,方便快捷,給數據庫管理員的工作帶來了很多的便利。在MySQL數據庫中,對于索引的使用并是一直都采用正確的決定。

簡單表的示例:

CREATE TABLE `r2` (

ID` int(11) DEFAULT NULL,

ID1` int(11) DEFAULT NULL,

CNAME` varchar(32) DEFAULT NULL,

KEY `ID1` (`ID1`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1

SELECT COUNT(*) FROM r2;

250001 (V1)

SELECT COUNT(*) FROM r2 WHERE ID1=1;

83036 (V2)

(execution time = 110 ms)

(ID1=1)條件查詢索引的選擇性是 V2/V1 = 0.3321 或 33.21%

一般來說(例如書 “SQL Tuning“),如果選擇性超過 20% 那么全表掃描比使用索引性能更優。

我知道Oracle一直是在選擇性超過25%時會選擇全表掃描。

而MySQL呢:

mysql> EXPLAIN SELECT COUNT(SUBNAME) FROM r2 WHERE ID1=1;

+----+-------------+-------+------+---------------+-----

| id | select_type | TABLE | type | possible_keys | KEY | key_len | ref | rows | Extra |

+----+-------------+-------+------+---------------+-----

| 1 | SIMPLE | t2 | ref | ID1 | ID1 | 5 | const | 81371 | USING WHERE |

+----+-------------+-------+------+---------------+-----

這就是MySQL將會使用索引來完成這個查詢。

讓我們來對比索引查詢和全表掃描的執行時間:

SELECT COUNT(SUBNAME) FROM t2 WHERE ID1=1 - 410 ms

SELECT COUNT(SUBNAME) FROM t2 IGNORE INDEX (ID1) WHERE ID1=1 - 200 ms

如你所看到全表掃描要快2倍。

參考更特殊的例子:選擇性 ~95%:

SELECT cnt2 / cnt1 FROM (SELECT count(*) cnt1 FROM r2) d1, (SELECT count(*) cnt2 FROM r2 WHERE ID1=1) d2;

0.9492 = 94.92%;

說明MySQL將會用索引來完成查詢。

執行時間:

SELECT COUNT(SUBNAME) FROM t2 WHERE ID1=1 - 1200 ms

SELECT COUNT(SUBNAME) FROM t2 IGNORE INDEX (ID1) WHERE ID1=1 - 260 ms

這次全表掃描要快4.6倍。

為什么MySQL選擇索引訪問查詢?

MySQL沒有計算索引的選擇性,只是預測邏輯IO操作的數量,并且我們的例子中間的邏輯IO數量,索引訪問要少于全表掃描。

最后我們得出結論,對于索引要小心使用,因為它們并不能幫助所有的查詢。所以大家在使用數據庫索引時還是需要根據具體的情況作出決定。

【編輯推薦】

  1. 一種特別簡單的MySQL數據庫安裝方法
  2. MySQL數據庫索引的4大類型以及相關的索引創建
  3. MySQL數據庫索引中的單列索引與多列索引
責任編輯:迎迎 來源: 賽迪網
相關推薦

2009-11-09 17:32:59

Oracle可選擇性

2011-03-25 11:13:15

Oracle數據庫進程

2011-06-29 09:33:18

Qt 編譯

2009-09-16 15:05:38

開源軟件軟件營銷開源產品

2011-03-22 14:35:23

Oracle數據庫安全措施

2011-03-25 09:46:16

Informix數據庫安全性安全審計

2022-08-19 09:53:20

人工智能大數據風險

2022-09-29 07:30:57

數據庫索引字段

2010-07-07 10:31:43

SQL Server數

2010-04-08 14:15:13

Oralce數據庫

2010-05-26 13:42:08

MySQL數據庫索引

2010-03-30 17:40:59

Oracle數據庫

2010-07-13 14:06:26

Perl選擇性控制結構

2018-06-26 15:58:06

數據庫MySQL索引優化

2017-03-15 15:14:03

MySQL數據庫高可用性

2014-08-06 10:10:52

MariaDB二進制日志

2011-07-18 15:59:17

MySQL數據庫

2010-05-21 10:01:11

MySQL數據庫

2020-07-20 08:00:29

數據庫

2011-03-16 08:54:45

Oracle數據庫索引
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美99| caoporn国产精品免费公开 | 日韩在线视频观看 | www四虎com| 欧美激情免费在线 | 97超碰成人 | 91视频88av | 精品久久久一区 | 午夜合集 | 久久久久久国产精品免费免费狐狸 | 精品国产欧美 | 欧美在线观看一区 | 国产成人综合亚洲欧美94在线 | 亚洲精品视频三区 | 中文字幕一区二区三 | 欧美一级电影免费观看 | 日韩视频中文字幕 | 久久国产精品一区二区三区 | 欧美激情第一区 | 成人av电影在线 | 麻豆国产一区二区三区四区 | 九九久视频 | 国产日韩一区二区三区 | 日韩一二三区 | 亚洲色图综合 | 91.com在线观看 | 中文字幕一区二区三区在线观看 | 精品国产精品三级精品av网址 | 一级a性色生活片久久毛片波多野 | 国产精品99久久久久久久久久久久 | 久久久久久国产精品三区 | 亚洲精品久久久9婷婷中文字幕 | 91在线看 | 亚洲天堂一区二区 | 国产精品自产拍 | 在线看免费的a | 精品久久久久久中文字幕 | 久久久久久免费毛片精品 | 国产乱码精品一区二区三区忘忧草 | 欧美日韩国产一区二区三区 | 午夜日韩 |