在具有多個表的MySQL數據庫中,是否受同一數據庫中所有其他表的大小影響的表上的查詢運行時間?受其他表大小影響的表的MySQL速度?
回答
我只能想到其他表可能會對查詢產生兩種影響,假設這些表未包含在查詢中,沒有其他查詢正在運行,並且沒有鏈接表的約束或觸發器。
第一個效果是在編譯階段。在此階段,SQL解析器從元數據表中獲取有關表和列的信息。數據庫中的更多表和列可能會減慢查詢的編譯速度。
其他影響是頁表和磁盤碎片。如果你有一個乾淨的系統並開始分配和填充頁面,那麼頁面可能會填充磁盤上的連續頁面(不保證,但可能)。在訪問時,操作系統可能預先獲取與請求頁面相鄰的物理頁面。在我描述的環境中,這個預取數據可能會用在查詢中。
在具有多個表的數據庫中,磁盤碎片的可能性大得多。在這種情況下,預取硬件頁面不太可能用於查詢中的相同表格。這意味着它們沒有被使用,所以需要額外的I/O請求來獲得下一頁。
我已經在磁盤碎片方面描述了這一點,但頁面本身可能會發生類似的情況。存儲表格數據的物理頁面可能不是連續的,具有相似的結果。
碎片可能是數據庫的問題。事實上,無論數據庫中有多少表,它都可能成爲問題。但是更多的表格具有更多的插入/刪除活動往往會增加碎片。但是,這些影響通常很小,只會在某些極端情況下導致性能顯着下降。
磁盤碎片和I/O緩存問題更多地關聯到相同的服務器,而不是相同的數據庫,但他們仍應該考慮。不確定同一服務器上的不同數據庫是否會在查詢編譯和規劃時影響性能。 – Vatev 2012-07-28 00:58:10
有許多表(和數據)只需要一個硬盤空間。
處理速度取決於您執行的表優化和大小+查詢,而不是整個數據庫。
查詢運行時可能會受到各種服務器環境問題的影響,因此,雖然可以說在數據庫中具有其他大型表並不會影響無關表上查詢的速度,實際情況是,這些表格可能也會被查詢並消耗服務器資源。這當然會影響您的查詢速度。
它應該只是一個問題,如果該表(大)與其他表與一些連接(外鍵約束將是一個例子)相關...否則你的表應該獨立行爲。也就是說,如果你有一張表如此龐大以至於造成速度問題,那麼你可能需要找到其他解決方案來將一些數據重構爲更小的子集。
- 1. 受鍵盤大小影響的列表
- 2. MySQL寫入是否受到表大小的影響?
- 3. 散列表大小對訪問速度的影響
- 4. JAVA JPA受其他列表影響的列表
- 5. HTML:div不受影像大小的影響
- 6. 受std :: cin影響的矢量大小?
- 7. 受窗口大小影響的OpenGL framebuffer
- 8. 如何從mysql刪除pma表而不影響其他表
- 9. 試圖找出塊大小對cuda程序速度的影響
- 10. Reset.css會影響其他樣式表嗎?
- 11. PostgreSQL SELECT的速度是否受到表上索引過多的負面影響?
- 12. 做大XML文件影響速度?
- 13. 表大小是否影響INSERT性能?
- 14. 影響其他對象列表的對象列表
- 15. textarea的影響其他TDS
- 16. mysql:將插入到臨時表中的受影響的行
- 17. Rails - 表格列的寬度受選擇框的影響
- 18. 獲取SQL表的受影響行數
- 19. 創建不受ShowDialog()影響的表單
- 20. Cookie大小是否會影響加載速度? (PHP)
- 21. 本地內存Opencl大小對速度有影響嗎?
- 22. MySQL的其他表
- 23. 固定字體大小不受放大或縮小影響
- 24. MySQL組通過影響其他組
- 25. UIWebView:表格寬度會影響文字大小
- 26. 應用程序大小是否影響啓動速度和內存大小
- 27. JUnit測試。創建一個列表會影響其他列表的大小。真的很奇怪
- 28. 對於從MySQL中提取大型表的子集,索引,表順序如何影響查詢速度?
- 29. ScriptProcessor的onaudioprocess事件速度可能受setInterval或requestAnimationFrame影響
- 30. CoreData獲取速度受NSPredicate中參數數量的影響?
其受插入和更新的同一表的大小的影響。但其他桌子?我不確定。只有插入,更新,選擇使用「其他表」我猜 – nawfal 2012-07-27 21:12:17