Amazon Aurora 定價頁面提到:
對于 I/O 費用,我們假設同一個資料庫每秒從存盤中讀取 100 個資料頁以滿足在其上運行的查詢。這將導致每月 2.628 億次讀取 I/O(每秒 100 頁 x 730 小時 x 60 分鐘 x 60 秒)。
這里的“資料頁”是什么意思?
同樣,假設您的應用程式對資料庫進行更改,影響平均每秒 10 個資料頁。Aurora 將對每個資料頁上最多 4 KB 的更改收取一次 I/O 操作。如果每頁更改的資料量小于 4 KB,這將導致每秒 10 次寫入 I/O。
多個較小的 SQL 查詢是否會比單個大型 SQL 查詢產生更多的 IOP?
uj5u.com熱心網友回復:
這里的“資料頁”是什么意思?
每個資料庫頁面對于 MySQL 兼容的 Aurora為16 KB,對于 PostgreSQL兼容的 Aurora為8 KB(來源:Amazon Aurora 常見問題解答)。
多個較小的 SQL 查詢是否會比單個大型 SQL 查詢產生更多的 IOP?
不一定,但有可能。
這里的關鍵是您優化查詢以僅根據需要進行讀/寫,而不是不必要地拆分。
太多小于 4KB 的小寫入意味著從長遠來看,您將無緣無故地支付更多費用,并且最好進行至少 4KB 或更多的更改以獲得最大的“物有所值”。
例子
假設我們要將 22KB 的資料寫入資料庫。
如果在一次查詢中完成,您將被收取 6 次 I/O 操作的費用。
-> 22KB / 4KB = 5,余數 2
-> 5 個 I/O 操作和一個額外的 1 個 I/O 操作。(占剩余的2KB)
如果在 5 個不同的查詢中完成,由您拆分,您還將只為 6 個 I/O 操作付費(因此我說不一定)。
但是,如果在查詢拆分中完成,以便每個查詢小于4KB,那么您將支付比需要更多的費用,因為您將消耗更多的 I/O 操作。
例如,如果您的查詢每個只向資料庫寫入 2KB,那么理論上您會為 11 次 I/O 操作收取1 次費用,這將是額外的 5 次 I/O 操作。
-> 22KB / 2KB = 11 個 I/O 操作
1 如檔案所述,寫入操作的數量可能會更少,但這取決于內部 Aurora 寫入 I/O 優化,在某些情況下可以將小于 4 KB 的寫入操作組合在一起。換句話說,它們可能會為您組合操作,但不能保證。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/375520.html
