Може да е време за хоризонтално разделяне и преместване на полето blob в отделна таблица. В тази статия в „Бърза странична бележка за вертикалното разделяне“ авторът премахва по-голямо поле varchar от таблица и това увеличава скоростта на заявка от порядък на величина.
Причината е, че физическото обхождане на данните на диск става значително по-бързо, ако има по-малко място за покриване, така че преместването на по-големи полета другаде повишава производителността.
Също така (и вероятно вече го правите) е полезно да намалите размера на вашата индексна колона до нейния абсолютен минимум (char(32) в ascii кодиране за md5), тъй като размерът на ключа е право пропорционален на скоростта на неговото използване .
Ако правите няколко вмъквания наведнъж с InnoDB таблици, можете значително да увеличите скоростта на вмъквания, като ги обвиете в транзакция и направите няколко вмъквания в една заявка:
START TRANSACTION
INSERT INTO x (id, md5, field1, field2) values (1, '123dab...', 'data1','data2'),(2,'ab2...','data3','data4'),.....;
COMMIT