我的数据库中有20,000列,并且经常进行查询,以列出特定表名模式的所有列:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME LIKE 'pattern_%' AND TABLE_SCHEMA = 'my-db-name'这通常是快速完成,但有时需要一些时间(多达10秒,我见过一次)。
为了优化它,我想在INFORMATION_SCHEMA上建立一个索引,但是,据我所知,它是一个视图,我不能为它创建一个索引。
ALTER TABLE `INFORMATION_SCHEMA`.`COLUMNS` ADD INDEX `table_name__table_schema` ( `TABLE_NAME` , `TABLE_SCHEMA` )1044 -拒绝用户'root'@'%‘到数据库'information_schema’的访问
总体上有40种“模式”,我经常使用。
是否有一种方法可以使查询尽可能快地进行优化?
查询解释:

发布于 2020-04-12 17:46:14
在存储物化视图时创建物化视图,因此您可以在其上创建索引。下面是mysql中物化视图语法的引用。
虽然我想知道为什么你说有时迟到,有时快,你不认为越多的数据,更多的时间。视图从未正确存储,但视图仍然从表中获取很少或所有列。当视图访问表本身的列时,是否尝试在所有表的唯一列上建立索引?
https://stackoverflow.com/questions/61175337
复制相似问题