Выполнение тяжелого хруста на столе без воздействия на стол - PullRequest
2 голосов
/ 28 марта 2012

Я ищу несколько общих советов о том, как лучше всего выполнять тяжелый анализ / извлечение данных для таблицы базы данных, не влияя на производительность обычных запросов сайта к таблице. Некоторые из расчетов могут включать объединение нескольких таблиц, а также сложную сортировку и упорядочение. Так что «используйте лучшие индексы» не всегда является решением.

Этот вопрос не совсем конкретный. Я ищу общий способ решения проблемы, которая возникала много раз за эти годы. Поэтому у меня нет конкретной схемы таблиц, которую нужно показывать, какой-то конкретный запрос, который нужно показать. Я подумал о том, чтобы сначала сбросить таблицу с помощью mysqldump, а затем повторно импортировать таблицу под другим именем, а затем выполнить тяжелый анализ этой временной таблицы. Мой системный администратор ненавидит эту идею, поэтому я ищу какие-либо другие решения, которые придут люди, чтобы справиться с этим типом проблемы.

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

Если ваш «тяжелый кризис» предназначен только для чтения, и вы не делаете ничего, что необходимо записать обратно в ваши производственные данные, используйте репликацию Master / Slave и используйте Slave для всех ваших потребностей в отчетности и анализе данных. Ссылка репликации будет поддерживать значения на ведомом устройстве в актуальном состоянии, и вы можете воздействовать на ведомое устройство с любой необходимой нагрузкой, не замедляя работу мастера, обслуживающего вашу производственную систему.

0 голосов
/ 28 марта 2012

Если вы хотите избежать влияния на производительность вашей производственной базы данных, единственное решение, которое я использовал ранее, - это запуск ваших запросов на другом сервере базы данных.

Я бы сделал резервную копию всей базы данных, а затем восстановил бы ее на отдельном сервере.

Очевидно, что вы не можете сделать это, если хотите анализировать данные в реальном времени. Но для большинства анализов достаточно снимка с предыдущего дня.

...