4.5
(2)|Views: 9,271 |Likes: 10http://www.scribd.com/doc/31337494/XtraDB-InnoDB-internals-in-drawing
08/28/2014
text
original
buffer pool Page level cache for tables and indexes Table1.ibd pages Table2.ibd pages Table3.ibd pages
innodb_buffer_pool_size is critical parameter Thumb rule: 60-80% of RAM Table1.ibd Primary key == data Secondary indexes
Disk
.ibd are placed separetely if innodb_file_per_table=1 Otherwise in ibdata1
query
Reads are done in foreground. innodb_read_io_threads are for read-ahead Pages are written in background innodb_write_io_threads. innodb_flush_method = O_DIRECT To avoid caching in OS cache
XtraDB: I_S.INNODB_BUFFER_POOL_PAGES shows content of buffer_pool
Table2.ibd
Files are divided by 16K pages XtraDB: 4K, 8K, 16K
query
Insert buffer part of buffer_pool InnoDB-std: may take ½ of buffer pool XtraDB: innodb_ibuf_max_size Disable: innodb_change_buffering=0 background thread “merges” buffer with indexes Adaptive hash search – speeds up search by secondary indexes lookups and range scans XTraDB: check sizes in SHOW INNODB STATUS
Writes are done via “double write buffer” to prevent corruptions
Table3.ibd
XtraDB: you can view content in I_S.INNODB_SYS_TABLES, I_S.INNODB_SYS_INDEXES
In s
er
tb
Ibdata1 ( system table space )
uf fe r is wr
Data dictionaty
itt en
fro
m
BP
to
di
Double write buffer
sk
Opened tables info InnoDB-std: can grow unlimitedly XtraDB: innodb_dict_size_limit Changes are fixed in log file via log buffer Insert buffer. Changes to secondary nonunique indexes are buffered there.
InnoDB-std: rollback segment is 1 XtraDB: innodb_extra_rsegments
Misc internal memory: Page hash XTraDB: check sizes in File system SHOW INNODB STATUS Lock system Recovery system Threads
Rollback segments
Undo slot Undo slot Undo slot 1023 slots per segment Pointers to undo space UNDO space may grow unlimitedly XtraDB: innodb_use_purge_thread=1 to use separate threads for cleaning
UNDO space
innodb_log_buffer_size 4M-16M is good value Log buffer
log file log file REDO LOGS innodb_log_file_size InnoDB-std: max size < 4GB XtraDB: max size < 2TB innodb_log_files_in_group (usually 2-3)
Usually changes are fixed In background “log thread” on disk with fsync() command. innodb_flush_log_at_trx_commit controls how to fsync
Sorry, we are unable to log you in via Facebook at this time. Please try again later.
Now bringing you back...
Please enter your email address below to reset your password. We will send you an email with instructions on how to continue.
Does that email address look wrong? Try again with a different email.