critical parameter
Thumb rule: 60-80% of RAM
.ibd are placed separetely if
innodb_file_per_table=1
buffer pool Table1.ibd Otherwise in ibdata1
Reads are done in foreground.
query Page level cache for tables and indexes
innodb_read_io_threads are for read-ahead Primary key Secondary
Table1.ibd Table2.ibd Table3.ibd == data indexes
pages pages pages Files are divided by
Pages are written in background
XtraDB: I_S.INNODB_BUFFER_POOL_PAGES innodb_write_io_threads. 16K pages
shows content of buffer_pool innodb_flush_method = O_DIRECT Table2.ibd XtraDB: 4K, 8K, 16K
To avoid caching in OS cache
query
Insert buffer part of buffer_pool
InnoDB-std: may take ½ of buffer pool XtraDB: you can view content in
Writes are done via Table3.ibd
XtraDB: innodb_ibuf_max_size I_S.INNODB_SYS_TABLES,
“double write buffer”
Disable: innodb_change_buffering=0 I_S.INNODB_SYS_INDEXES
to prevent corruptions
background thread In
“merges” buffer s er Ibdata1 ( system table space )
tb
with indexes uf
fe
r is
Adaptive hash search – speeds up search by wr Data dictionaty
itt
secondary indexes lookups and range scans en
fro
XTraDB: check sizes in m
SHOW INNODB STATUS BP
to Double write buffer
di
sk
Opened tables info
Changes
InnoDB-std: can grow unlimitedly are fixed in
XtraDB: innodb_dict_size_limit log file via Insert buffer. Changes to secondary non-
log buffer unique indexes are buffered there. InnoDB-std: rollback segment is 1
XtraDB: innodb_extra_rsegments
innodb_log_buffer_size
4M-16M is good value
Log buffer log file