我讀了大量有關數據庫的btree定理的文章。這裏總是讓人迷惑不解。
假設我有一個表被描述爲如下:
表userinfo的:
(USER_ID作爲主鍵,用戶名字符串,密碼作爲字符串)
如在一些文章所描述的,USER_ID創建爲索引爲表用戶信息,我會得到有效的性能與特點,如果我由USER_ID .. 的指數選擇記錄,但如果我通過用戶名選擇,它說,它campares行一個通過e ..... 我試試MYSQL,它不如預期的那麼慢....
爲什麼?
mysql怎麼用這個選擇? thanx有關btree和數據庫索引的問題
0
A
回答
0
如果您的WHERE子句通過用戶名(未索引)進行比較,則可能會執行全表掃描。但是,如果表中的行數很少,這可能仍然很快。現在計算機速度非常快,數據庫在組織數據以進行有效的表掃描方面非常聰明。
+0
thanx ...正如你所說,它會掃描所有行以匹配非索引條件,但如果我有數十億條記錄,並且用戶名字段沒有按字母順序插入。後續掃描可能耗時,有沒有辦法獲得高性能......? thanx – 2010-11-04 16:38:55
+0
如果您打算在一列上比較並且有多行,請考慮添加一個索引。 – 2010-11-04 16:44:17
相關問題
- 1. 關於數據庫表中部分鍵和索引的問題
- 2. 有關數據庫中插入和更新獲取索引的問題
- 3. 索引BTree存儲
- 4. MySQL數據庫索引性能問題
- 5. sapply數據索引問題?
- 6. 有關Oracle索引簡單的問題
- 7. MySQL的 - 全文索引搜索問題在我的數據庫
- 8. 關於從FMDB數據庫檢索數據的問題
- 9. 數據庫和相關問題
- 10. 問題性能數據庫有很多索引
- 11. 問題關於MySQL索引和Asp.net C#
- 12. 有關服務器,數據庫和Android的問題
- 13. 數組問題 - 關於索引。 c#
- 14. 保持索引索引中的關係數據庫結構?
- 15. 與SphinxSE和RT索引有關的一些問題
- 16. 關於核心數據實體索引的問題
- 17. 數據庫索引
- 18. 數據庫上的抓取和索引
- 19. 有關搜索的問題
- 20. SEO:從數據庫檢索數據和URL,抓取和索引
- 21. SQL數據庫的索引和表關係
- 22. 具有靈活索引的數據庫?
- 23. VB.net有關數組搜索的問題
- 24. register_shutdown_function和數據庫問題!
- 25. php和數據庫問題
- 26. 與Android相關的數據庫問題
- 27. 關於數據庫更新的問題
- 28. 關於數據庫的問題
- 29. 關於數據庫建模的問題
- 30. 關於數據庫的一般問題
它不使用索引,而是確實掃描每一行。但是任何體面的數據庫都會嘗試優化掃描。 _「不如預期的那麼慢」_與用索引「_不如索引速度一樣快」_,但在非索引列上選擇可以有效且快速_enough_。 – Wrikken 2010-11-04 16:25:35
@Wrikken:thanx for you即時回覆..如何解決這個選擇用戶名的問題,你知道任何表都不一定只有一列。 – 2010-11-04 16:35:50
列的寬度通常是已知的,因此在特定的字節偏移處掃描特定的列通常是非常有效的(並且如果第一個字節不匹配丟棄該行等)。不同的數據庫可能採用不同的策略。如果你真的想知道,'mysql'的來源是免費的,所以瀏覽它,你的休閒。甲骨文可能採用了很多相同的策略。我自己非常滿意,知道如何使用它作爲最終用戶,不需要在這裏瞭解實現的細節:) – Wrikken 2010-11-04 16:54:48