Задать вопрос
@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. Не подскажите почему и как править? Спасибо!
  • Вопрос задан
  • 624 просмотра
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 5
FanatPHP
@FanatPHP
Чебуратор тега РНР
Заверни все инсерты в транзакцию.

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

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

Похожие вопросы