MySQL:从未知数量的表中查询

时间:2010-07-19 12:22:39

标签: mysql logging ejabberd

这就是我想要做的。我正在使用带有mod_logdb的ejabberd。所有会话都记录在数据库中用日期标记的表中。

ex:logdb_messages_2010-7-17_server_node

我正在尝试做的是编写一个搜索,它将查看所​​有这些表,而不会过多地访问数据库。我想创建一个视图来获取表中的所有数据,以便我可以点击它。

问题是可能有几天没有日志,当然还有几天我们开始记录。

有没有办法可以以某种方式使用通配符从MySQL获取这些信息?我的另一个人就是写一个每日的cron工作来重新创建我需要的视图。

2 个答案:

答案 0 :(得分:2)

哇,那是一个高级反模式。

您应该查询information schema,除非您可以控制架构并首先避免错误。

如果不能,则必须动态生成预准备语句。

这是一个例子:

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

答案 1 :(得分:0)

您可以使用Merge engine来简化多个表格中数据的选择 视图不会提高性能。您必须优化查询并添加necesarry索引以提高性能。有时重新设计模式也是一种解决方案。