Ако искате бързи вмъквания, първото нещо, от което се нуждаете, е подходящ хардуер. Това предполага достатъчно количество RAM, SSD вместо механични устройства и доста мощен процесор.
Тъй като използвате InnoDB, това, което искате, е да го оптимизирате, тъй като конфигурацията по подразбиране е предназначена за бавни и стари машини.
Ето страхотно четиво за конфигурирането на InnoDB
След това трябва да знаете едно нещо - и това е как базите данни вършат работата си вътрешно, как работят твърдите дискове и така нататък. Ще опростя механизма в следното описание:
Транзакция е MySQL, който чака твърдият диск да потвърди, че е записал данните. Ето защо транзакциите са бавни на механичните устройства, те могат да извършват 200-400 входно-изходни операции в секунда. Преведено, това означава, че можете да получавате 200-ти заявки за вмъкване в секунда, като използвате InnoDB на механично устройство. Естествено,това е опростено обяснение , само за да очертая какво се случва, това не е пълният механизъм зад транзакцията .
Тъй като една заявка, особено тази, съответстваща на размера на вашата таблица, е сравнително малка по отношение на байтове - вие на практика губите ценни IOPS за една заявка.
Ако обвиете няколко заявки (100 или 200 или повече, няма точен брой, трябва да тествате) в една транзакция и след това я извършите - незабавно ще постигнете повече записвания в секунда.
Момчетата от Percona постигат 15k вмъквания в секунда на сравнително евтин хардуер. Дори 5k вмъквания в секунда не е лошо. Таблицата като вашата е малка, направих тестове на подобна таблица (3 колони повече) и успях да стигна до 1 милиард записа без забележими проблеми, използвайки 16gb ram машина с 240GB SSD (1 диск, без RAID, използвани за тестови цели).
TL;DR:- следвайте връзката по-горе, конфигурирайте вашия сървър, вземете SSD, обвийте множество вмъквания в 1 транзакция и печелете. И не изключвайте и след това включвайте индексирането, не винаги е приложимо, защото в един момент ще отделите време за обработка и IO, за да ги създадете.