Cache-Daten von InnoDB-Tabellen, Indizes und anderen Hilfspuffern werden im Speicherbereich im Pufferpool gespeichert. Die Größe des Pufferpools ist wichtig für die Systemleistung. Ein größerer Pufferpool kann die Festplatten-E/A für mehrere Zugriffe auf dieselben Tabellendaten reduzieren. Es ist möglich, die Pufferpoolgröße auf 80 % der physischen Speichergröße des Computers auf einem dedizierten Datenbankserver festzulegen >
InnoDB-Seitengröße (Standard 16 KB). Auf einer Seite sind viele Werte enthalten, und die Seitengröße ermöglicht eine einfache Konvertierung in Bytes.
Innodb_buffer_pool_chunk_size
Innodb_page_size
InnoDB页面大小(默认为16KB)。页面中包含许多值,页面大小使它们可以轻松转换为字节。
Innodb_buffer_pool_chunk_size
innodb_buffer_pool_chunk_size 定义InnoDB缓冲池大小调整操作的块大小。默认128M。最大值可设置innodb_buffer_pool_size / innodb_buffer_pool_instances
innodb_buffer_pool_instances
InnoDB 缓冲池划分为的区域数。
Innodb_buffer_pool_pages_data
数页在 InnoDB 缓冲池中包含的数据。该数字包括 脏页和干净页。使用压缩表时,报告的 Innodb_buffer_pool_pages_data 值可能大于 Innodb_buffer_pool_pages_total (错误#59550)。
Innodb_buffer_pool_pages_total
InnoDB 缓冲池 的总大小(以页为单位)。使用压缩表时,报告的 Innodb_buffer_pool_pages_data 值可能大于 Innodb_buffer_pool_pages_total (错误#59550)
2)运行状态变量
Innodb_buffer_pool_pages_flushed
从缓冲池刷新页面的请求数 。
Innodb_buffer_pool_read_requests
表示从内存中读取逻辑的请求数。
Innodb_buffer_pool_reads
InnoDB 不能从缓冲池满足的逻辑读取的数量,必须直接从磁盘读取。
Innodb_buffer_pool_wait_free
innodb_buffer_pool_instances
Innodb_buffer_pool_pages_data
Anzahl der im InnoDB-Pufferpool enthaltenen Datenseiten. Diese Zahl umfasst schmutzige und saubere Seiten. Bei Verwendung komprimierter Tabellen kann der gemeldete Innodb_buffer_pool_pages_data-Wert größer als Innodb_buffer_pool_pages_total sein (Fehler #59550).
Innodb_buffer_pool_pages_total
Die Gesamtgröße des InnoDB-Pufferpools in Seiten. Bei Verwendung komprimierter Tabellen kann der gemeldete Innodb_buffer_pool_pages_data-Wert größer sein als Innodb_buffer_pool_pages_total (Bug #59550)
2) Ausführungsstatusvariable
Innodb_buffer_pool_pages_flushed
Innodb_buffer_pool_read_requests
stellt die Anzahl der Anfragen zum Lesen von Logik aus dem Speicher dar. 🎜🎜Innodb_buffer_pool_reads
🎜🎜🎜🎜Die Anzahl der logischen Lesevorgänge, die InnoDB nicht aus dem Pufferpool erfüllen kann und die direkt von der Festplatte gelesen werden müssen. 🎜🎜🎜🎜Innodb_buffer_pool_wait_free
🎜🎜🎜🎜Normalerweise erfolgen Schreibvorgänge in den InnoDB-Pufferpool im Hintergrund. Wenn InnoDB eine Seite lesen oder erstellen muss und keine sauberen Seiten verfügbar sind, löscht InnoDB zunächst einige fehlerhafte Seiten und wartet, bis der Vorgang abgeschlossen ist. Dieser Zähler zählt diese wartenden Instanzen. Bei korrekter Einstellung sollte innodb_buffer_pool_size ein kleinerer Wert sein. 🎜🎜🎜🎜Angemessene Einstellung der Pufferpool-bezogenen Parameter🎜🎜🎜1 ist standardmäßig auf 80 % des Systemspeichers eingestellt und wird dann gemäß den folgenden Regeln an die tatsächliche Situation angepasst🎜🎜mysql> show global status like 'Innodb_buffer_pool_pages_data'; +-------------------------------+---------+ | Variable_name | Value | +-------------------------------+---------+ | Innodb_buffer_pool_pages_data | 1894874 | +-------------------------------+---------+ 1 row in set (0.00 sec) mysql> show global status like 'Innodb_buffer_pool_pages_total'; +--------------------------------+---------+ | Variable_name | Value | +--------------------------------+---------+ | Innodb_buffer_pool_pages_total | 1965960 | +--------------------------------+---------+ 1 row in set (0.00 sec) # 计算是否应该添加内存 使用率 = Innodb_buffer_pool_pages_data/Innodb_buffer_pool_pages_total*100% 当结果 > 95% 则增加 innodb_buffer_pool_size 当结果 < 95% 则减少 innodb_buffer_pool_size, 可适当较少,当然独享业务机器多了也没啥问题
# cat /etc/my.cnf [mysqld] ...... innodb_buffer_pool_size = 系统内存%80 innodb_buffer_pool_instances = 大于8的情况下,每个缓冲池实例至少1GB ......
对于繁忙的服务器, buffer pool 将划分为多个实例以提高系统并发性, 减少线程间读写缓存的争用。buffer pool 的大小首先受 innodb_buffer_pool_instances 影响, 当然影响较小。
1.Innodb_buffer_pool_pages_data: Innodb buffer pool缓存池中包含数据的页的数目,包括脏页。单位是page。
show global status like 'Innodb_buffer_pool_pages_data';
2.Innodb_buffer_pool_pages_total: innodb buffer pool的页总数目。单位是page。
show global status like 'Innodb_buffer_pool_pages_total';
3.show global status like 'Innodb_page_size'; 查看@@innodb_buffer_pool_size大小,单位字节
SELECT @@innodb_buffer_pool_size/1024/1024/1024; #字节转为G
4.在线调整InnoDB缓冲池大小,如果不设置,默认为128M
set global innodb_buffer_pool_size = 4227858432; ##单位字节
计算Innodb_buffer_pool_pages_data/Innodb_buffer_pool_pages_total*100%
当结果 > 95% 则增加 innodb_buffer_pool_size, 建议使用物理内存的 75%
当结果 < 95% 则减少 innodb_buffer_pool_size, 建议设置大小为: Innodb_buffer_pool_pages_data * Innodb_page_size * 1.05 / (1024*1024*1024)
Das obige ist der detaillierte Inhalt vonSo legen Sie Innodb_buffer_pool_size in MySQL fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!