ALTER table merchants DROP PRIMARY KEY, ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
если ваш движок базы данных - innodb, я предлагаю вам использовать целое число с автоматическим увеличением в качестве первичного ключа, а не uuid, потому что первичный ключ в innodb является кластеризованным индексом. Автоинкремент первичного ключа может уменьшить разделение страницы.
Обратите внимание, что не только вставка строк с первичным ключом UUID занимает больше времени, но и результирующие индексы немного больше. Отчасти это связано с большим первичным ключом, но некоторые из них, несомненно, связаны с разделением страниц и результирующей фрагментацией.
и минусы последовательного использования первичного ключа:
- Целевая страница могла быть сброшена на диск и удалена из кешей, или могла никогда не быть помещена в кеши, и в этом случае InnoDB должен будет найти ее и прочитать с диска, прежде чем он сможет вставить новая строка. Это вызывает много случайных операций ввода-вывода.
- Когда вставки выполняются не по порядку, InnoDB должен часто разделять страницы, чтобы освободить место для новых строк. Это требует перемещения большого количества данных и изменения как минимум трех страниц вместо одной.
- Страницы становятся разреженными и неравномерно заполненными из-за разделения, поэтому окончательные данные фрагментированы.
Если вы хотите узнать больше о влиянии первичного ключа на разделение или объединение страниц, посетите здесь