我有大约150个不同的数据库,每个服务器上都有数十个表。我想查找一个特定人名所在的数据库。现在,我正在使用phpmyadmin逐个搜索每个数据库,但我真的希望能够一次性搜索所有数据库和所有表。这可能吗?我该如何做?
SCHEMATA
表,其中包含服务器上所有数据库的名称。正确的做法是首先对数据进行规范化!
你说名字 - 但大多数人至少有两个名字(姓和名),它们被拆分还是在同一个字段中?如果它们在同一个字段中,那么它们出现的顺序是什么?它们如何大写?
尝试确定数据可能在哪里的最有效方法是编写一个C程序,在关闭DBMS的情况下筛选原始数据文件以查找数据 - 但这只会告诉您它们出现在哪个表中。
如果失败,您需要编写一些PHP,通过每个数据库进行迭代('SHOW databases'的工作方式类似于select语句),然后遍历数据库中的每个表,然后生成一个SELECT语句,过滤每个足够大以容纳您要查找的名称的CHAR或VARCHAR列(尝试运行'DESC $table')。
祝你好运。
C.
最好的答案可能取决于您想要多频繁地执行此操作。如果这是一周一次的临时性工作,那么上面的答案就很好。
如果您想每秒钟进行一次这样的搜索,也许可以创建一个“数据仓库”数据库,其中只包含您想要搜索的表格:列(大量索引,并带有对源数据库的引用,如果需要的话),由cron job或由受150个数据库更改驱动的存储过程填充...