Долгий insert в mysql

187
15 ноября 2017, 01:56

Сайт на основе Moodle.

Структура таблицы следующая.

CREATE TABLE mdl_disc_cont_iup
(
  id          INT AUTO_INCREMENT
    PRIMARY KEY,
  bup_regnum  VARCHAR(255)                        NULL,
  group_name  VARCHAR(255)                        NULL,
  sem_bup     INT                                 NULL,
  sem_iup     INT                                 NULL,
  control     VARCHAR(50)                         NULL,
  mark        CHAR(255)                           NULL,
  disc_block  VARCHAR(50)                         NULL,
  full_name   VARCHAR(500)                        NULL,
  login       CHAR(255)                           NULL,
  person_id   CHAR(16)                            NULL,
  date_insert TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL,
  arc         INT DEFAULT '0'                     NULL
);

Для вставки встроенный метод

$DB->insert_records('disc_cont_iup', $records);

Он объединяет записи по 50 штук и отправляет на вставку. Без отключения автокоммита, индексов и т.д.

Но всё это выполняется катастрофически долго, нужно импортить раз в сутки 400к записей

Переписал я напрямую через mysqli, комбинируя по 500 записей, но по прежнему медленно. Скрипт получает эти записи http запросом, и затем должен в кроне их импортить. Сейчас около 1000 записей в минуту

READ ALSO
.htaccess не обрабатывает картинки

.htaccess не обрабатывает картинки

В каталоге лежитhtaccess и файлы jpg, php

169
php цикл foreach внутри js кода

php цикл foreach внутри js кода

в indexhtml файле есть обычный script, внутри которого js массив (который генерируется циклом foreach из php)

145
Получение ошибки

Получение ошибки

Какую конструкцию мне необходимо реализовать, если я вызываю

226
Как защитить CRON скрипты

Как защитить CRON скрипты

Ребята нужно сделать что бы только CronJob мог использовать файлы в папке CRON, больше никто, как осуществить?

178