В какой формат можно экспортировать большую (несколько гигов) MySQL базу, чтобы эту базу можно было быстро загрузить в локальный клиентский софт?
Например есть возможность сделать дамп в текстовом формате sql. Но это пожалуй самый неоптимальный вариант: в процессе установки такого файла на локальном клиенте нужно по сути выполнить миллиарды операций INSERT, чтобы у клиента возникла такая же база.
А может есть возможность экспортировать во что-то двоичное, чтобы загрузка на клиенте была предельно простой и быстрой?
Может есть средства экспорта из mySQL в какие-то форматы типа SQLite (правда я не знаю подойдет ли конкретно SQLite для баз гигабайтных размеров).
Добавлю еще вопрос. Есть ли в MySQL возможность делать такие вот выгрузки по определенным временнЫм диапазонам?
То есть чтобы в итоге получался не один файл дампа, а несколько разбитые по дням, или неделям, или иным промежуткам времени?
Здравствуйте, x-code, Вы писали:
XC>В какой формат можно экспортировать большую (несколько гигов) MySQL базу, чтобы эту базу можно было быстро загрузить в локальный клиентский софт?
Да как запрограммируешь, так и будет.
XC>Например есть возможность сделать дамп в текстовом формате sql. Но это пожалуй самый неоптимальный вариант: в процессе установки такого файла на локальном клиенте нужно по сути выполнить миллиарды операций INSERT, чтобы у клиента возникла такая же база. XC>А может есть возможность экспортировать во что-то двоичное, чтобы загрузка на клиенте была предельно простой и быстрой? XC>Может есть средства экспорта из mySQL в какие-то форматы типа SQLite (правда я не знаю подойдет ли конкретно SQLite для баз гигабайтных размеров).
Правильно мыслишь. Сделай этот миллиард инсертов заранее. SQLite вполне подойдет.
XC>Добавлю еще вопрос. Есть ли в MySQL возможность делать такие вот выгрузки по определенным временнЫм диапазонам?
Здравствуйте, x-code, Вы писали:
x> В какой формат можно экспортировать большую (несколько гигов) MySQL базу, чтобы эту базу можно было быстро загрузить в локальный клиентский софт? x> Например есть возможность сделать дамп в текстовом формате sql. Но это пожалуй самый неоптимальный вариант: в процессе установки такого файла на локальном клиенте нужно по сути выполнить миллиарды операций INSERT, чтобы у клиента возникла такая же база.
Не обязательно. Опция --extended-insert делает дамп с множественными вставками за одну операцию insert. Но да, способ не быстрый (хотя надежный).
x> А может есть возможность экспортировать во что-то двоичное, чтобы загрузка на клиенте была предельно простой и быстрой?
xtrabackup или, если не требуется hot backup, просто скопировать бинарные файлы MySQL.
x> Может есть средства экспорта из mySQL в какие-то форматы типа SQLite (правда я не знаю подойдет ли конкретно SQLite для баз гигабайтных размеров).
mysql2sqlite или экспорт в CSV из MySQL (SELECT INTO OUTFILE) и загрузка CSV в базу SQLite. SQLite прекрасно справляется с базами во много GB при неконкурентной записи.
x> Добавлю еще вопрос. Есть ли в MySQL возможность делать такие вот выгрузки по определенным временнЫм диапазонам? x> То есть чтобы в итоге получался не один файл дампа, а несколько разбитые по дням, или неделям, или иным промежуткам времени?
Без ручного партиционирования — нет. В общем случае наиболее удобным способом будет экспорт по диапазону дат в CSV и разбор на клиентской стороне любым удобным парсером или загрузка прям в MySQL (LOAD DATA INFILE).
Здравствуйте, x-code, Вы писали:
XC>В какой формат можно экспортировать большую (несколько гигов) MySQL базу, чтобы эту базу можно было быстро загрузить в локальный клиентский софт?
Ну я бы выгружал в тот формат который понимает клиентский софт.
Здравствуйте, x-code, Вы писали:
XC>Здравствуйте, BlackEric, Вы писали:
BE>>Ну я бы выгружал в тот формат который понимает клиентский софт.
XC>А клиентский софт как раз я могу написать как хочу. Вот на сервер лезть нежелательно...
Здравствуйте, x-code, Вы писали:
XC>В какой формат можно экспортировать большую (несколько гигов) MySQL базу, чтобы эту базу можно было быстро загрузить в локальный клиентский софт?
Что значит "в локальный клиентский софт"?
На клиентских машинах будет локальный инстанс MySQL или тебе надо трансформировать данные в формат вообще отличный от MySQL?
Здравствуйте, x-code, Вы писали:
XC>В какой формат можно экспортировать большую (несколько гигов) MySQL базу, чтобы эту базу можно было быстро загрузить в локальный клиентский софт? XC>Например есть возможность сделать дамп в текстовом формате sql. Но это пожалуй самый неоптимальный вариант: в процессе установки такого файла на локальном клиенте нужно по сути выполнить миллиарды операций INSERT, чтобы у клиента возникла такая же база.
Как бы это -- единственный вариант, и именно им все пользуются.
Других вариантов дампа и восстановления в MySQL нет. (кроме конечно холодного бэкапа базы — просто скопировать все файлы баз и восстановить в новом месте)