RDS Aurora - 取得查詢掃描的位元組數?

RDS Aurora - 取得查詢掃描的位元組數?

是否可以取得 aurora 中查詢讀取的位元組數?如果不在查詢級別,是否可以在表格級別擁有它?

我研究了效能見解和 Performance_schema 表,但它們似乎都只有 ROWS_SCANNED 的數據,而不是物理位元組數。效能洞察中的 I/O 指標似乎也是資料庫層級的,而不是表格層級的。

答案1

對於所有 InnoDB,請參閱SHOW STATUS LIKE 'Innodb_%';

指標是全域的,而不是在資料庫或表格級別,這是有原因的-buffer_pool 是一個快取。每個查詢都依賴並幹擾其他每個查詢。至少在 I/O 級別是如此。

我對“掃描的位元組數”是否相關存在爭議。看來「接觸行」更有用。在執行查詢時,除了 I/O 之外,存取行是成本最高的任務。

不幸的是,Innodb 狀態值是聚合統計信息,因此您需要在安靜的時間運行查詢才能獲取單個語句的統計信息。

在查詢之前和之後執行此操作,然後計算差異。

SHOW STATUS LIKE 'Innodb%read%';

注意:有些計數行,有些計數塊,有些計數字節。

請記住,由於阻塞,「從磁碟讀取的位元組數」之類的資料將是 16KB 的倍數。我認為沒有任何東西會監視“掃描的位元組數”。

如果您可以獲得這些數據,請進一步描述您希望如何處理這些數據。我也許可以給你一個更有針對性的答案。

我發現這SHOW SESSION STATUS LIKE 'Handler%';對於破解單一查詢發生的工作量非常有用。它是每個會話(以及全域)。

「寫入」指標通常是指為支援複雜的SELECTs.

相關內容