首页 > C, MySQL Innodb > Innodb表空间page size的选择

Innodb表空间page size的选择

前段时间看innodb plugin源码的时候,看到有如下一段
include/univ.i

/* The 2-logarithm of UNIV_PAGE_SIZE: */
#define UNIV_PAGE_SIZE_SHIFT    14
/* The universal page size of the database */
#define UNIV_PAGE_SIZE          (1 << UNIV_PAGE_SIZE_SHIFT)

/* Maximum number of parallel threads in a parallelized operation */
#define UNIV_MAX_PARALLELISM    32

尝试将 UNIV_PAGE_SIZE_SHIFT 改成13 (相当于page size为8K),编译通过并可以正常使用。
后来找到Google的MySQL团队发表的一篇文章,文中的介绍 Innodb page size 可以选择 8K、 16K、 32K、 64K。不过因为Innodb每个page都有不小的冗余空间,从空间和内存利用的角度来讲,page size越大越好。但是从checkpoint的角度来讲恰恰相反,page size越小,性能越好(上次演讲的时候我介绍过原理)。所以最后选择多大的page size可以根据实际的业务测试而定。

Related posts:

  1. InnoDB Plugin 1.0.4 for MySQL 5.1.37
  2. MySQL新版(5.x)及特性
  3. InnoDB plugin 1.0.7
  4. Inniostat – InnoDB IO Statistics
分类: C, MySQL Innodb 标签:
  1. Dante.li
    2009年11月7日12:07 | #1

    居然看到源码了,顶

  1. 2012年5月17日10:53 | #1