High Performance MySQL說索引的好處之一是「索引將隨機I/O轉換爲順序I/O」,所以我不明白怎麼做mysql索引將隨機I/O轉換爲順序I/O。mysql索引如何將隨機I/O轉換爲順序I/O
回答
我認爲他們的意思是,當你在表中這樣的索引列可以排序你的東西很容易,因爲索引序列
從這些 屬性開始有三個主要優點: 1.索引減少服務器必須檢查的數據量。 2.索引幫助服務器避免排序和臨時表。 3.索引將隨機I/O變爲順序I/O ... 因此,已經提出了分類收益,但仍然存在「索引將隨機I/O變爲順序I/O」的好處,我真的不明白如何。不管怎樣,謝謝你! – wxweven
覺得電話簿。假設你想查找姓氏以「S」開頭的人。你可以找到所有他們非常接近。
使用索引也有助於排序。如果您搜索姓氏以「S」開頭的所有人,並且您希望他們按姓氏排序,那麼這沒什麼問題,查詢可以按照他們在電話簿中列出的順序讀取它們,並且它們是全部存儲在一起。所以讀取是通過順序讀取完成的。
但是,如果你想讓它們按其他名稱排序,比如它們的名字,在按照你想要的順序返回它們之前,必須有一些額外的步驟來對提取的行進行排序。您想要排序的數據集可能大於內存容量,因此它必須使用臨時磁盤空間來進行排序。有很多方法可以非常高效地完成此操作,但可能需要多次傳遞,或者從數據庫中提取行時構建排序列表。
基本上,以預先排序的順序存儲行可以有效地搜索存儲在一起的值,並且有效地按照索引的順序檢索它們。
「索引將隨機I/O變爲順序I/O」,這是否意味着這隻適用於主鍵?由於無法按兩個索引順序存儲數據,因此當您通過其他索引獲取數據時,您仍然需要隨機選擇I/O。希望您的回覆!非常感謝! – wxweven
我同意這一點。除非你的查詢是一個「僅索引」的查詢,只需要列出你正在掃描的索引的一部分。 –
- 1. 將[[Maybe Int]]轉換爲IO()
- 2. 將IO Int轉換爲Int
- 3. C++:如何將C庫文件IO轉換爲C++流IO?
- 4. 如何將IO(ea)轉換爲ExceptT ema
- 5. Haskell:如何將IO(a)轉換爲?
- 6. 從IO Maybe a轉換爲EitherT IO a
- 7. IO計算順序
- 8. Haskell IO:將IO字符串轉換爲「其他類型」
- 9. 將[IO Int]轉換爲Haskell中的IO [Int]?
- 10. 如何從std :: io :: Bytes轉換爲&[u8]
- 11. GridFS將文件轉換爲IO文件
- 12. 將swagger json轉換爲mashery io-docs json
- 13. 如何將字符串轉換爲Io中的列表?
- 14. 如何將IO對象轉換爲Ruby中的字符串?
- 15. 如何將IO int轉換爲Haskell中的字符串?
- 16. 如何在Haskell中將IO [[Int]]轉換爲[[Int]]?
- 17. 如何將System :: IO :: Stream ^轉換爲PlaySound的LPCSTR?
- 18. 將IO [String]過濾爲IO [String]
- 19. 引導旋轉木馬 - 隨機順序
- 20. MySQL索引順序
- 21. Mysql和Nitrious IO
- 22. 如何將行隨機與MySQL轉換爲列
- 23. 如何處理IO(Maybe(IO(Maybe t)))type?
- 24. 如何將主機字節順序的值轉換爲小端?
- 25. 如何將索引轉換爲列表?
- 26. Mysql生成大IO
- 27. 將IO [FilePath]轉換爲字符串或字節流
- 28. 將IO字符串轉換爲字符串
- 29. 惰性IO +並行性:將圖像轉換爲灰度
- 30. CSV IO python:將csv文件轉換爲列表清單
什麼是'高性能MySQL'?一本書?博客?請正確引用。 – EJP
一本書,由y Baron Schwartz,Peter Zaitsev,Vadim Tkachenko撰寫,請參閱鏈接http://shop.oreilly.com/product/0636920022343.do – wxweven
這3個版本中哪一個是? –