Does partitioning a MySQL table also increase index creation performance?
Partitioning usually rather decreases ALTER TABLE speed. Index and data is stored in separate files for each partition (a separate .ibd file for INNODB if innodb_file_per_table=1), so that you might make alter in parallel. But partitioning add an extra processing step to choose the partition for storing data/index, thus the whole operation is made slower.

mysql&gt; create table alter_test (id int primary key auto_increment, v   char(20));
mysql&gt; load data infile '/tmp/1' into table alter_test;
Query OK, 500000 rows affected (9.98 sec)

mysql&gt; alter table alter_test add index i_test(v);
Query OK, 0 rows affected (4.55 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql&gt; create table alter_test (id int primary key auto_increment, v  char(20)) partition by key(id) partitions 10;
mysql&gt; load data infile '/tmp/1' into table alter_test;
Query OK, 500000 rows affected (9.98 sec)

mysql&gt; alter table alter_test add index i_test(v);
Query OK, 0 rows affected (4.83 sec)


As for the shared lock for ALTER TABLE, all partitions are locked in the same time, so partitioning does not help.

Hints:


Upgrade to  MySQL 5.6, since it supports online alter table.
Use scripts such as oak-online-alter-table or pt-online-schema-change as a workaround for MySQL version &lt; 5.6