mysql 数据库 额外_mysql – 拥有“额外”数据库查询有多糟糕?
簡短回答:(1)確保你保持在同一個大O級別,重用連接,衡量績效; (2)想一想你對數據一致性的關注程度.
答案很長:
性能
從性能角度來看,一般來說,除非您已經接近最大化數據庫資源(例如最大連接數),否則這不太可能產生重大影響.但是你應該記住一些事情:
>替換“2-4”查詢的“6-8”查詢是否保持相同的執行時間?例如如果當前數據庫交互處于O(1),它是否會變為O(n)?或者當前的O(n)會變為O(n ^ 2)?如果是,您應該考慮這對您的應用程序意味著什么
>大多數應用程序服務器可以重用現有的數據庫連接,或者具有持久數據庫連確保您的應用程序不為每個查詢建立新連接;否則這將使其效率更低
>在許多常見情況下,主要是在具有復雜索引和連接的較大表上,通過主鍵執行少量查詢可能比在單個查詢中連接這些表更有效;如果在執行此類連接時,服務器不僅需要更長時間來執行復雜查詢,而且還會阻止針對受影響表的其他查詢
一般而言,關于表現,經驗法則是 – 總是衡量.
一致性
但是,性能不是唯一需要考慮的方面.還要考慮您對應用程序中數據一致性的關注程度.
例如,考慮一個簡單的情況 – 表A和B具有一對一的關系,并且您使用主鍵查詢單個記錄.如果您使用單個查詢連接這些表并檢索結果,您將從A和B獲取記錄,或者從兩者中都沒有記錄,這也是您的應用程序所期望的.現在考慮是否將其拆分為2個查詢(并且您沒有使用具有首選隔離級別的事務) – 您從表A獲取記錄,但在您從表B中獲取匹配記錄之前,它將被刪除/更新為另一個過程.現在你的應用程序有一個來自A的記錄,但沒有來自B
這里的一般問題是 – 您是否關心您的關系數據的ACID合規性,因為它與您正在分離的查詢有關?如果答案是肯定的,那么您必須考慮應用程序邏輯在這些特定情況下的反應.
總結
以上是生活随笔為你收集整理的mysql 数据库 额外_mysql – 拥有“额外”数据库查询有多糟糕?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 长沙霸占车位车主致歉 栏杆拆除:双方均再
- 下一篇: 取代C++!微软改用Rust语言重写的W