@WebmasterW3S
Веб-программист

Почему insert выполняется более 0.01 секунды?

Доброго времени суток! Поставил себе чистый CentOS 8, Mysql 8.0.17 создал простенькую таблицу
CREATE TABLE IF NOT EXISTS `service`.`properties` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(150) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE)
ENGINE = InnoDB

пытаюсь вставить
INSERT INTO properties (name) VALUES (1);
INSERT INTO properties (name) VALUES (2);
INSERT INTO properties (name) VALUES (3);
...

в неё 10000 записей и... они вставляются целых 60 секунд. Хотя на моём локальном сервере на макос с ссд вместо нвме они вставляются всего за 2 секунды на той же mysql8. Не подскажите почему и как править? Спасибо!
  • Вопрос задан
  • 579 просмотров
Пригласить эксперта
Ответы на вопрос 6
@FanatPHP
Чебуратор тега PHP
Заверни все инсерты в транзакцию.

Чтобы не было разночтений: правильный пример того как заключить INSERTы в транзакцию
Ответ написан
BojackHorseman
@BojackHorseman Куратор тега MySQL
...в творческом отпуске...
потому что нужно подготовить запрос и обернуть в транзакцию
Ответ написан
martin74ua
@martin74ua
Linux administrator
а сервер настраивали? или просто поставили?
Ответ написан
Spartak-2205
@Spartak-2205
Разработка и создание сайтов
Так будет быстрее
INSERT INTO properties (name) VALUES 
(1), 
(2), 
(3), 
(4), 
... 
(10000);
Ответ написан
BasiC2k
@BasiC2k
Индексы из таблицы уберите, а после инсерта восстановите.
Ответ написан
@CyrussMeat
BULK-insert'ы работают с get_last_id, просто нужно получить last id после такого пакета и с помощью количества записей программно восстановить идентификаторы в скрипте. Это к слову оптимизации вообще.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы