Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте
у меня есть txt файл размером порядка 700мб , который заливается в бд и строит индексы порядка за 8 минут...
конфиг
skip-external-locking
myisam_repair_threads=8
myisam_max_sort_file_size=4G
key_buffer_size = 4G
max_allowed_packet = 1M
table_open_cache = 512
table_cache=512
sort_buffer_size = 32M
read_buffer_size = 32M
read_rnd_buffer_size = 64M
myisam_sort_buffer_size = 2G
thread_cache_size = 8
query_cache_size = 128M
thread_concurrency = 8
SQL команда
LOAD DATA LOCAL INFILE 'f:\\test.txt' INTO TABLE `test` CHARACTER SET cp1251 FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' (name,@dummy,@dummy,dopname,nametov);
при изучении на локальном компьютере поведения mysql выяснилось что большая половина времени уходит на построение индексов.
в то время когда на MSSQL это все занимает чуть меньше трех минут.
Вопрос: можно ли догнать и перегнать показатели MSSQL при импорте файла размером 700мб?
т.е. возможно ли использование команды LOAD DATA INFILE при одновременном строительстве индексов в момент заливки файла?
Отредактированно mikeac (25.11.2011 01:58:03)
Неактивен
У MySQL в этой части есть узкое место: индексы создаются последовательно в один
поток. Хорошего способа создавать индексы в несколько потоков нет.
Я правильно понимаю, что Вы делаете
ALTER TABLE ... DISABLE KEYS;
LOAD DATA ...;
ALTER TABLE ... ENABLE KEYS?
Если нет — попробуйте отключать индексы перед вставкой: как правило
построение целого индекса требует меньше времени, чем обновление уже
существующих.
Неактивен
paulus написал:
У MySQL в этой части есть узкое место: индексы создаются последовательно в один
поток. Хорошего способа создавать индексы в несколько потоков нет.
Я правильно понимаю, что Вы делаете
ALTER TABLE ... DISABLE KEYS;
LOAD DATA ...;
ALTER TABLE ... ENABLE KEYS?
Если нет — попробуйте отключать индексы перед вставкой: как правило
построение целого индекса требует меньше времени, чем обновление уже
существующих.
благодарю Вас за ответ, у меня не происходит отключение индексов, а просто командой LOAD DATA идет импорт.
действительно из 8 минут импорта 700мб файла, половина времени уходит на постройку индексов (и они нужны),
решения по уменьшению импорта файла - вопрос как я понял уже к разработчикам?
а учитывая что отец всеми нами любимой базы продолжает вести проект под новым именем - вопрос нужно задавать ему?
какие у меня есть шансы что это вообще решаемо, ответьте пожалуйста?
ps. мне не критично, просто хочется скорости
Неактивен