比較有索引和無索引的查詢速度(在mysql資料庫中)
索引:
定義:在關聯式資料庫中,索引是一種單獨的、物理的對資料庫表中一列或多列的值進行排序的一種儲存結構,它是某個表中一列或若干列值的集合和 相應的指向表中物理標識這些值的資料頁的邏輯指標清單。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。
總的來說索引就是為了提高查詢的速度
mysql資料庫中可以新增索引,其中的主鍵是自帶索引的,但是在使用有索引的列進行查詢的時候才會提高速度。
mysql資料庫中的索引演算法有HASH 和BTREE。其中HASH索引適合等值查詢,不適合範圍;BTREE索引適合範圍查詢,並且沒有hash衝突問題。
下面我們來證明索引是否真的提高了查詢速度:
現在我們mysql資料庫中有一個表student,表中有兩列:name,age(由於資料量太多,age不是現實生活中的年齡),該表中有15272條記錄。下圖是該表:
查詢:(1)沒有索引的時候進行查詢
(2)將name設成hash索引
(3)將name設成btree索引
由上面三個結果頁面的顯示:我們可以看出無索引的查詢速度要比有索引的查詢速度慢很多。
相關文章
- 【索引】oracle查詢使用索引和不使用索引的比較索引Oracle
- 資料庫查詢和資料庫(MySQL)索引的最佳化建議資料庫MySql索引
- Mysql中的Btree與Hash索引比較MySql索引
- 全域性索引和本地索引的比較索引
- 理解索引(中):MySQL查詢過程和高階查詢索引MySql
- mysql千萬級資料量根據索引優化查詢速度MySql索引優化
- 索引的分析和比較索引
- 千萬級資料庫使用索引查詢速度更慢的疑惑-資料回表問題資料庫索引
- mysql千萬級資料量根據索引最佳化查詢速度MySql索引
- 找到 MySQL 資料庫中的不良索引MySql資料庫索引
- mysql資料庫的索引MySql資料庫索引
- 【資料庫】mysql資料庫索引資料庫MySql索引
- (利用索引)大資料查詢索引大資料
- [轉]Oracle分割槽索引--本地索引和全域性索引比較Oracle索引
- Oracle分割槽索引--本地索引和全域性索引比較(轉)Oracle索引
- 為什麼有時Oracle資料庫不用索引來查詢資料?(轉)Oracle資料庫索引
- mysql查詢索引結構MySql索引
- MySQL 學習之索引篇和查詢MySql索引
- 【Mysql】資料庫索引,百萬資料測試索引效果MySql資料庫索引
- MySQL 庫大小、表大小、索引大小查詢命令MySql索引
- MySQL資料庫之索引MySql資料庫索引
- indexedDB 通過索引查詢資料Index索引
- 資料庫索引中包含的資料結構有哪些資料庫索引資料結構
- cassandra的索引查詢和排序索引排序
- MySQL索引與查詢優化MySql索引優化
- 【索引】Oracle查詢指定索引提高查詢效率索引Oracle
- 什麼情況下需要建立索引? 索引的作用?為什麼能夠提高查詢速度?(索引的原理) 索引有什麼副作用嗎?索引
- TableStore多元索引,大資料查詢的利器索引大資料
- Mysql建表、索引、函式、查詢使用中的坑!!!MySql索引函式
- MySQL資料庫索引簡介MySql資料庫索引
- 查詢沒有索引的外來鍵索引
- multi-key索引和wildCard索引場景比較索引
- 比較SQL Server 2008資料庫引擎優化和索引優化SQLServer資料庫優化索引
- AppBoxFuture: 二級索引及索引掃描查詢資料APP索引
- MySQL-效能優化-索引和查詢優化MySql優化索引
- mysql timestamp比較查詢MySql
- B樹在資料庫索引中的應用剖析資料庫索引
- MySQL(二):快速理解MySQL資料庫索引MySql資料庫索引