Bug #67792 Specify the initial size of a tablespace
Submitted: 3 Dec 2012 3:07 Modified: 14 Dec 2012 7:13
Reporter: Lixun Peng (OCA) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: DDL Severity:S4 (Feature request)
Version:5.x OS:Any
Assigned to: CPU Architecture:Any

[3 Dec 2012 3:07] Lixun Peng
Description:
InnoDB should can specify the datafile initial size, because if InnoDB under heavy write workload, InnoDB table datafile need to extend space frequently, it will effect performance.
And if we know the upper limit of the table, we can extend the space to upper limit when we create table. 

How to repeat:
heavy write workload to InnoDB

Suggested fix:
InnoDB can specify the datafile initial size.

CREATE TABLE test (
 id int ....
) ENGINE=InnoDB DATAFILE_INITIAL_SIZE=10000000;

DATAFILE_INITIAL_SIZE can specify the initial size of datafile, the unit is page.
[3 Dec 2012 3:08] Lixun Peng
this patch add a new option in creating table--DATAFILE_INITIAL_SIZE

Attachment: innodb_initial_size.diff (application/octet-stream, text), 5.71 KiB.

[3 Dec 2012 4:41] Lixun Peng
this patch based on 5.5.18
[14 Dec 2012 7:13] Marko Mäkelä
Thank you for the idea! I think that this should be a persistent attribute of the tablespace. (Currently it is 1 InnoDB table per tablespace (*.ibd file), but I would like to make this generic.)