To use an alternate page size, edit innobase/include/univ.i to change these:
/* The universal page size of the database */Does InnoDB support 4kb pages? Maybe. If you edit the fields listed above for a 4kb page size and run MySQL, you will quickly get a core dump. The problem is that there are other per-page objects that are too big for a 4kb page. The first problem I encountered is fixed by editing innobase/include/trx0rseg.h to reduce the number of rollback segment slots per page. The default value is:
#define UNIV_PAGE_SIZE (2 * 8192)
/* The 2-logarithm of UNIV_PAGE_SIZE: */
#define UNIV_PAGE_SIZE_SHIFT 14
#define TRX_RSEG_N_SLOTS 1024To be really safe, I set it to 256 and the segfault was fixed. I haven't done testing beyond this so your mileage may vary.
InnoDB had a 900 byte per-page overhead when I last measured this. 900 bytes per 4kb page is much worse than per 16kb page. I am not sure when this will get fixed.