Is >58 hours to create an index normal? Should I cancel and try again? I have an InnoDB table with ~43,964,557 rows containing 20.5 GiB of data (not counting existing indexes).

mysql&gt; show table status like 'backpack_items';
+----------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+
| Name           | Engine | Version | Row_format | Rows     | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time | Check_time | Collation         | Checksum | Create_options | Comment |
+----------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+
| backpack_items | InnoDB |      10 | Compact    | 43964557 |            501 | 22063579136 |               0 |   7406682112 |  10485760 |           NULL | 2014-10-27 14:12:09 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
+----------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+
1 row in set (11.80 sec)


I'd like to create an index of 3 INT columns, so I ran the query.

mysql&gt; CREATE INDEX `defindex-quality-level` ON `backpack_items` (`defindex`, `quality`, `level`);


It's still chugging, 58 hours later.

mysql&gt; show processlist;
+-------+------+-----------+---------------+---------+--------+-------------------+--------------------------------------------------------------------------------------------+
| Id    | User | Host      | db            | Command | Time   | State             | Info                                                                                       |
+-------+------+-----------+---------------+---------+--------+-------------------+--------------------------------------------------------------------------------------------+
|  1077 | root | localhost | traderep_site | Query   | 209716 | copy to tmp table | CREATE INDEX `defindex-quality-level` ON `backpack_items` (`defindex`, `quality`, `level`) |
| 54172 | root | localhost | NULL          | Query   |      0 | NULL              | show processlist                                                                           |
+-------+------+-----------+---------------+---------+--------+-------------------+--------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)


Is this normal? Is there something I could have done to make it faster?
What is the value of sort_buffer_size?  200M might be reasonable on your machine.  (A sort might be involved in the index creation.)

Keep in mind that it will rebuild all the indexes.  Still 58 hours is unreasonable.

What is the value of innodb_buffer_pool_size?  It may be using that.  It should be about 11G for that size machine, assuming you are using only InnoDB.