MySQL: запрос из неизвестного количества таблиц - PullRequest
0 голосов
/ 19 июля 2010

Вот что я пытаюсь сделать. Я использую ejabberd с mod_logdb. Все разговоры записываются в таблицу в базе данных, помеченную датой.

Например: logdb_messages_2010-7-17_server_node

То, что я пытаюсь сделать, это написать поиск, который будет смотреть во всех этих таблицах, не слишком сильно ударяя по БД. Я хотел бы создать представление, которое принимает все данные в таблице, чтобы я мог просто нажать это.

Проблема в том, что могут быть дни, в которых нет журналов, и, конечно, дни, прежде чем мы начали регистрироваться.

Есть ли способ, которым я могу каким-то образом использовать подстановочный знак, чтобы поймать их из MySQL? Другой мой другой, хотя бы писал ежедневную работу cron, чтобы воссоздать вид, который мне нужен.

Ответы [ 2 ]

2 голосов
/ 19 июля 2010

Ух ты, это старший паттерн.

Вам следует запросить информационную схему , если только вы не можете контролировать схему и избежать ошибки.

Если вы не можете, вы должны динамически сгенерировать подготовленный оператор.

Это пример:

http://jayant7k.blogspot.com/2008/02/mysql-stored-procedures-dynamic-tables.html

0 голосов
/ 19 июля 2010

Вы можете использовать Механизм слияния для упрощения выбора данных из нескольких таблиц.
Представления не улучшают производительность.Вы должны оптимизировать свои запросы и добавить необходимые индексы для повышения производительности.Иногда изменение схемы также является решением проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...