October 22, 2014

InnoDB page size

As maybe you know InnoDB uses hard page size 16Kb for datafiles and for buffer pool.
However this size can be changed if you need it for your workload.

go to file innobase/include/univ.i, lines:

UNIV_PAGE_SIZE is page size (as you see – default value 16Kb). Possible values for UNIV_PAGE_SIZE is 8K, 16K, 32K, 64K. You also have to change UNIV_PAGE_SIZE_SHIFT (according comment it must be 2-logarithm of UNIV_PAGE_SIZE).
For pagesize 8K – UNIV_PAGE_SIZE_SHIFT=13, for 32K – UNIV_PAGE_SIZE_SHIFT=15 and so on.

About Vadim Tkachenko

Vadim leads Percona's development group, which produces Percona Clould Tools, the Percona Server, Percona XraDB Cluster and Percona XtraBackup. He is an expert in solid-state storage, and has helped many hardware and software providers succeed in the MySQL market.

Comments

  1. peter says:

    Yes. Playing with different page sizes is good thing to try if you’re trying to get maximum performance. Too bad Innodb currently does not allow to specify it for table or index but it has to be global and requires server rebuild. Generally for certain OLTP workloads you might like to have smaller pages as these allow more distinct peices of data to be in buffer pool. For DSS workloads which require large scans or deal with large rows on the contrary large pages could be good to avoid fragmentation.

  2. podarok says:

    Are thehe any speed test with different sizes for it?

  3. Song says:

    Hi Vadim Tkachenko,

    I like your idea but i cannot config because i don’t know where is this innobase/include/univ.i. I’m using Cent Os

  4. jafar says:

    Not able to find univ.i file, would you help

Speak Your Mind

*