You are on page 1of 1

Memory innodb_buffer_pool_size is Disk

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

Misc internal memory:
Page hash Rollback segments
XTraDB: check sizes in
File system Undo Undo Undo
SHOW INNODB STATUS 1023 slots per segment
Lock system slot slot slot
Recovery system Pointers to undo space
Threads
UNDO space UNDO space may grow unlimitedly
XtraDB: innodb_use_purge_thread=1
to use separate threads for cleaning

innodb_log_buffer_size
4M-16M is good value
Log buffer log file

log file REDO LOGS
Usually changes are fixed innodb_log_file_size
In background “log thread” InnoDB-std: max size < 4GB
on disk with fsync() command. XtraDB: max size < 2TB
innodb_flush_log_at_trx_commit innodb_log_files_in_group
controls how to fsync (usually 2-3)