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

論MySQL何時使用索引,何時不使用索引

數據庫 MySQL
索引是一個單獨的、物理的數據庫結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的數據頁的邏輯指針清單。

索引:

使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓(name)列。如果要按姓查找特定職員,與必須搜索表中的所有行相比,索引會幫助您更快地獲得該信息。

索引是一個單獨的、物理的數據庫結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的數據頁的邏輯指針清單。

索引提供指向存儲在表的指定列中的數據值的指針,然后根據您指定的排序順序對這些指針排序。數據庫使用索引的方式與您使用書籍中的索引的方式很相似:它搜索索引以找到特定值,然后順指針找到包含該值的行。

在數據庫關系圖中,您可以在選定表的“索引/鍵”屬性頁中創建、編輯或刪除每個索引類型。當保存索引所附加到的表,或保存該表所在的關系圖時,索引將保存在數據庫中。

注意:

并非所有的數據庫都以相同的方式使用索引。作為通用規則,只有當經常查詢索引列中的數據時,才需要在表上創建索引。索引占用磁盤空間,并且降低添加、刪除和更新行的速度。在多數情況下,索引用于數據檢索的速度優勢大大超過它的不足之處。但是,如果應用程序非常頻繁地更新數據或磁盤空間有限,則可能需要限制索引的數量。

可以基于數據庫表中的單列或多列創建索引。多列索引使您可以區分其中一列可能有相同值的行。

如果經常同時搜索兩列或多列或按兩列或多列排序時,索引也很有幫助。例如,如果經常在同一查詢中為姓和名兩列設置判據,那么在這兩列上創建多列索引將很有意義。

確定索引的有效性:

  • 檢查查詢的 WHERE 和 JOIN 子句。在任一子句中包括的每一列都是索引可以選擇的對象。
  • 對新索引進行試驗以檢查它對運行查詢性能的影響。
  • 考慮已在表上創建的索引數量。***避免在單個表上有很多索引。
  • 檢查已在表上創建的索引的定義。***避免包含共享列的重疊索引。
  • 檢查某列中唯一數據值的數量,并將該數量與表中的行數進行比較。比較的結果就是該列的可選擇性,這有助于確定該列是否適合建立索引,如果適合,確定索引的類型。

#p#

MySQL何時使用索引

對一個鍵碼使用>, >=, =, <, <=, IF NULL和BETWEEN

  1. SELECT * FROM table_name WHERE key_part1=1 and key_part2 > 5; 
  2. SELECT * FROM table_name WHERE key_part1 IS NULL

當使用不以通配符開始的LIKE

  1. SELECT * FROM table_name WHERE key_part1 LIKE 'jani%' 

在進行聯結時從另一個表中提取行時

  1. SELECT * from t1,t2 where t1.col=t2.key_part 

找出指定索引的MAX()或MIN()值

  1. SELECT MIN(key_part2),MAX(key_part2) FROM table_name where key_part1=10 

一個鍵碼的前綴使用ORDER BY或GROUP BY

  1. SELECT * FROM foo ORDER BY key_part1,key_part2,key_part3 

在所有用在查詢中的列是鍵碼的一部分時間

  1. SELECT key_part3 FROM table_name WHERE key_part1=1 

MySQL何時不使用索引

如果MySQL能估計出它將可能比掃描整張表還要快時,則不使用索引。例如如果key_part1均勻分布在1和100之間,下列查詢中使用索引就不是很好:

  1. SELECT * FROM table_name where key_part1 > 1 and key_part1 < 90 

如果使用HEAP表且不用=搜索所有鍵碼部分。

在HEAP表上使用ORDER BY。

如果不是用鍵碼***部分

  1. SELECT * FROM table_name WHERE key_part2=1 

如果使用以一個通配符開始的LIKE

  1. SELECT * FROM table_name WHERE key_part1 LIKE '%jani%' 

搜索一個索引而在另一個索引上做ORDER BY

  1. SELECT * from table_name WHERE key_part1 = # ORDER BY key2 

【編輯推薦】

  1. 教你如何利用MySQL學習MongoDB
  2. Craigslist采用MongoDB替代MySQL
  3. MySQL中的NoSQL插件
  4. SQL與NoSQL——MySQL與NoSQL的融合
責任編輯:艾婧 來源: gzh0222的專欄
相關推薦

2021-12-09 09:52:36

云原生安全工具云安全

2020-10-21 14:54:02

RustGolang開發

2020-10-10 10:20:11

云計算云安全技術

2021-04-12 07:34:03

Java集合框架

2021-11-26 09:00:00

數據庫數據集工具

2018-12-12 09:59:47

微服務架構分布式系統

2019-11-29 07:53:07

DNSTCP網絡協議

2024-08-01 10:10:24

MySQL場景搜索

2020-12-13 14:32:22

5GWi-Fi 6

2013-08-21 15:06:31

iOSself.

2012-02-08 11:01:53

HibernateJava

2024-04-16 12:00:14

API系統

2025-05-19 08:13:45

2022-04-16 14:20:29

MySQL數據庫

2021-06-01 11:11:26

物聯網互聯網IoT

2021-04-25 15:06:16

微軟虛擬桌面IT

2023-11-10 12:55:00

消息代理事件代理

2021-04-14 07:52:00

Vue 作用域插槽

2020-02-25 16:00:28

JavaScript數據技術

2024-10-07 08:49:25

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩色在线 | 久久不卡视频 | 欧美99 | 欧美一区二区三区精品免费 | 成人免费一区二区三区视频网站 | 欧美成人一区二区 | 久久久毛片 | 久久久区| 日本aa毛片a级毛片免费观看 | 中文字幕日韩欧美一区二区三区 | 国产亚洲一区二区在线观看 | 中国一级特黄真人毛片 | 在线日韩av电影 | 久久999| 色一级| 黄色一级视频 | 午夜天堂精品久久久久 | 91久久久久| 国产视频2021 | 91免费看片| 久热精品在线播放 | 日韩欧美一二三区 | 日韩欧美在线观看 | 色欧美片视频在线观看 | 国产精品久久久久久久久久久久久久 | 国产三级在线观看播放 | 成人在线视频网站 | 五月婷婷激情网 | 99热精品在线观看 | 91在线看 | 国产日产精品一区二区三区四区 | 欧美激情亚洲天堂 | 亚洲精品久久区二区三区蜜桃臀 | 国产一级特黄视频 | 久久久久久国产精品三区 | 污污免费网站 | 日韩午夜影院 | 国产视频久久久久 | 国产精品成人一区二区三区吃奶 | 999精品视频| 人人干人人看 |