www.wxrtiu.live > mysql一般索引和主鍵索引查詢速度一樣嗎

mysql一般索引和主鍵索引查詢速度一樣嗎

這兩個都是索引的一種形式,主鍵索引速度相對要快些, 參考資料:

我覺得應該是一樣快的,主鍵也是索引,只不過它是唯一的而已

不一樣.索引分主索引和副索引,關鍵字,一般是主索引,通常關鍵字一半只有一個

首先糾正一樓,索引不一定快,在數據不多的時候,索引反而會托慢查詢速度.其次,系統一般會自動為主鍵建立唯一索引,但不能說明主鍵就是一個索引.再次,主鍵的值一般不是按字母、數字的順序排列的,而為其建立索引就是為了克服為一缺陷(索引的值是按順序排列的)最后,自增主鍵就算不建索引的話,速度也不會慢的,因為它的值是按順序排列的,系統肯定會一個機制來提高查詢速度的.綜上可知,自增主鍵是更快的.

1.主鍵必須是唯一的索引,唯一索引不一定是主鍵; 2.一個表可以有多個唯一索引,但只能有一個主鍵; 3.主鍵列不允許空值,而唯一索引列允許空值.

添加索引之后只要是在查詢索引的條件都會快很多,你可以想像下把某一字段的數據排序后保存,然后查詢這個排序后的字段,肯定比沒經過排序后的查詢要快.另外你可以看看這個http://zhidao.baidu.com/question/1959549222411109940

主鍵是表中的一個或多個字段,它的值用于惟一地標識表中的某一條記錄.且不能為空;索引是對數據庫表中一列或多列的值進行排序的一種結構,只有當經常查詢索引列中的數據時,才需要在表上創建索引,使用索引可快速訪問數據庫表中的特定信息.索引占用磁盤空間,并且降低添加、刪除和更新行的速度.當然索引也有好處就是查詢速度快,它利還是大于弊的所以請慎重使用索引. 比如:一個學生表(t_stu )有1000條數據,給它id列建個主鍵和索引, 你想查詢id=1000;的這條信息,如果沒有索引,它就一條一條的比對查找,系統運行1000次才找到,要是創建了索引,你查詢id=1000的這條信息,系統只運行一次就找到了.

你的理解其實沒啥問題.索引就是通過事先排好序,從而在查找時可以應用二分查找等高效率的算法.一般的順序查找,復雜度為O(n),而二分查找復雜度為O(log2n).當n很大時,二者的效率相差及其懸殊.舉個例子:表中有一百萬條數據,需要在其中尋找一條特定id的數據.如果順序查找,平均需要查找50萬條數據.而用二分法,至多不超過20次就能找到.二者的效率差了2.5萬倍!

理論上可以無數,當然越多越慢

問題描述含混,似乎應該是“為什么建立索引能夠使得數據庫查詢更快”,按此來解釋吧.一般的數據表是按照行來存儲的,字段多、有長字段的表的記錄就會長,就要占用更多的空間來存儲,而索引是建立在一個或少數幾個字段上的特殊數據

網站地圖

All rights reserved Powered by www.wxrtiu.live

copyright ©right 2010-2021。
www.wxrtiu.live內容來自網絡,如有侵犯請聯系客服。[email protected]
3d走势图