workOnFood
блин у тебя одна таблица - текущие записи, вторая таблица - записи из xml... у тебя же есть id в xml
не вижу проблемы - единственное - запрос я пол дня писал этот, чтобы он быстро обрабатывался =)
Мне нужно чтобы все записи из xml были у меня в бд, тобишь актуальные данные. И вобщемто абсолютно фиолетово будет там published = 0 либо вовсе не будет записи. Нафига мне сложный запрос, чтобы потом сделать из двух таблиц одну правильную, если вторая уже правильная и остается удалить первую и переименовать вторую. Это фанат предложил несколько постов тому назад.
Во первых на винде работать с таким обьемом - анрил. Сколько памяти на машине? Свопит ли при выполнении запроса?
Во вторых укажи сколько занимает места на диске эта база.
Во первых на винде работать с таким обьемом - анрил. Сколько памяти на машине? Свопит ли при выполнении запроса?
Во вторых укажи сколько занимает места на диске эта база.
На машине 4гб, но думаю вы имели ввиду сколько отдал под php, тогда 256мб. И да, делаю на винде, но это тестовый серв, боевой будет на линуксе. Что значит свопит? База занимает 971мб. - остальные таблицы оказались значительно меньше.
SET autocommit=0;
SET unique_checks=0;
SET foreign_key_checks=0;
INSERT ...
...............;
COMMIT;
SET foreign_key_checks=1;
SET unique_checks=1;
Добавлю, что может оказаться еще лучше грохнуть все индексы, кроме primary key, и потом заново создать. Плюс, если есть автоинкремент, изменить innodb_autoinc_lock_mode на 2.
С муисамом, даже если создавать все индексы потом, все равно будет медленнее - конвертация в innodb это примерно то же, что select-insert из myisam в innodb таблицу.
в качестве простого теста, после выставления у себя в my.cnf
innodb_doublewrite = 0
при импорте дампа на 700 метров я вижу уменьшение загрузки винта с 36-50 Мб/сек до 11-25Mb/sec
у меня SSD, mysql в обоих случаях упирается в CPU
правда, это на винде, но разница именно в 2 раза налицо
опять вспоминаю Postgres, в котором все важные настройки документированы очень хорошо, там эта фича называется write-ahead log
в отличие от InnoDB, WAL в pg можно вынести на отдельный винт для записи параллельно с данными