Mysqldump + join
Формулировка задачи:
Добрый вечер!
Имееются две таблицы
одна на 500к строк, другая на 700к строк
назовем первую auto_info вторую auto
нужен дамп из таблицы auto_info
причем меня не интересуют все 500к строк - мне надо только 60к
то есть, я пишу:
Хорошо. Запрос отрабатывает за 10 секунд. все довольны.
Далее, эту таблицу сразу лью в другую базу:
но в секции where никак не указать мой join
пробовал select from select ..... - работает около 30 минут - это не подходит
пробовал
.......... --where="exists (${ЗАПРОС})".... - тоже работает очень долго
как вариант, я бы мог снимать данные этим запросом в отдельный файл и потом заливать из файла в базу - этот вариант решения мне не нравится тем, что так я снимаю дамп уже с 500 таблиц(там обхожусь без join)
и вот для двух таблиц надо использовать join для увеличения скорости выборки
Хотел бы спросить, нет ли какого способа сделать что-то типа
select * from auto_info where (мой запрос)
и чтобы скорость работы была как с использованием join?
SELECT ai.VIN FROM auto_info ai JOIN auto a ON ai.VIN = a.VIN WHERE a.id = 1447
mysqldump -h ip.ip.ip.ip -uuser -ppass database auto_info --where="${ЗАПРОС}" | mysql -h ip2.ip2.ip2 -uuser2 -ppass2 database2Решение задачи: «Mysqldump + join»
textual
Листинг программы
mysqldump -h ip.ip.ip.ip -uuser -ppass dbname auto_info_view --where="id = id" --compact --lock-all-tables --add-drop-table > 123.txt
Объяснение кода листинга программы
mysqldump- команда для работы с базами данных MySQL-h ip.ip.ip.ip- параметр для указания IP-адреса хоста, где размещена база данных-uuser- параметр для указания имени пользователя базы данных-ppass- параметр для указания пароля пользователя базы данныхdbname- параметр для указания имени базы данныхauto_info_view- параметр для указания имени таблицы в базе данных--where- параметр для указания условия фильтрации при выборке данных из таблицыid = id- значение параметра--where, указывающее на условие фильтрации по полюidтаблицы--compact- параметр для компактного вывода результатов запроса--lock-all-tables- параметр для блокировки всех таблиц перед выполнением запроса--add-drop-table- параметр для добавления команд создания и удаления таблиц в выходной файл123.txt- параметр для указания имени выходного файла