[英]difference between innodb_log_buffer_size and innodb_buffer_pool_size
[英]What data do the MariaDB system variables refer to e.g. innodb_log_buffer_size
許多MariaDB系統變量定義了最大數據大小,在通過JDBC發送大量數據的寫操作的上下文中,我不清楚確切地測量了哪些數據,例如:
innodb_buffer_pool_size
= 24696061952
和
innodb_log_buffer_size
= 8388608
和
max_allowed_packet
= 562036736
我使用基准測試,在其中插入,更新或刪除具有2MB原始數據(即日期和雙精度數據)的50000行。
因此,當MariaDB實現這些變量定義的限制時,它是查看通過網絡發送的參數的原始值,還是也包含所有SQL字符串?
即它只是測量
2012-01-01,0.1234
2012-01-02,0.4321
2012-01-03,0.9999
...
還是考慮SQL字符串中的字節:
UPDATE data SET value = 0.1234 WHERE date = '2012-01-01'
UPDATE data SET value = 0.4321 WHERE date = '2012-01-02'
UPDATE data SET value = 0.9999 WHERE date = '2012-01-03'
在此示例中,哪個明顯大2到3倍?
它指的是內部的東西。 事務記錄到重做日志(ib_logfile0 / ib_logfile1)中。 重做日志記錄將緩沖在重做日志緩沖區中,直到提交事務為止。重做日志記錄的格式未記錄,並且在兩個版本之間可能有所更改。 您可以通過觀察innodb_os_log_writer狀態變量的更改來查看寫入日志的數量。
MariaDB [test]> show global status like 'innodb_os_log_written';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| Innodb_os_log_written | 12800 |
+-----------------------+-------+
1 row in set (0.00 sec)
您的數據很小,緩沖池足夠大。 緩沖池是innodb緩存數據的方式。 如果您的數據大於bufferpool(在您的情況下不是),則Innodb將需要更頻繁地從磁盤讀取數據。 因此,請保持原樣,或者可以使其更小。
這只是一種安全措施,旨在防止DDOS。 如果發送非常大的數據包,它們會使服務器分配更多的內存,甚至可能用完內存。 但是,如果不發送大數據包,則服務器不會分配大量內存,並且如果您不怕DDOS,則可以將其擴展到1G。
為了了解在服務器端發送或接收了多少數據,您可以查看狀態變量
MariaDB [test]> show status like 'bytes%';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| Bytes_received | 570 |
| Bytes_sent | 1716 |
+----------------+-------+
2 rows in set (0.00 sec)
這與您發送的數據大小如何對應? 並非總是有一個簡單的答案。
如果您只是發送未准備好的查詢,則將發送4字節的數據包頭+ 1字節的命令(COM_QUERY)+ SQL查詢字符串。 如果查詢大於16M,它將被分為多個數據包,每個數據包有4個字節的開銷。
使用服務器端准備好的語句會更加復雜。 每個數據類型都有其自己的編碼。 ,因此整數不會以文本,浮點數或日期的形式發送。 字符串仍然作為字符串發送。 通常,發送的數據量會小一些(畢竟,您僅發送數據就不發送SQL命令)。
MariaDB 10.2服務器和JDBC還進行了優化,可以為單個准備好的語句發送多個數據。 這樣可以減少客戶端發送的數據量(一點),但是客戶端接收的數據量將大大減少,所有命令只是單個數據包,而不是每個命令一個。 此優化不適用於DELETE。
對於批處理未在服務器端准備好的語句,JDBC進行了另一項優化,該優化將許多類似的INSERT查詢轉換為一個多插入,這也減少了發送和接收的字節數,但這僅是INSERT(現在是一項對DELETE執行類似操作的任務)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.