首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL优化INFORMATION_SCHEMA查询

MySQL优化INFORMATION_SCHEMA查询
EN

Stack Overflow用户
提问于 2020-04-12 17:20:03
回答 1查看 121关注 0票数 0

我的数据库中有20,000列,并且经常进行查询,以列出特定表名模式的所有列:

代码语言:javascript
复制
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME LIKE 'pattern_%' AND TABLE_SCHEMA = 'my-db-name'

这通常是快速完成,但有时需要一些时间(多达10秒,我见过一次)。

为了优化它,我想在INFORMATION_SCHEMA上建立一个索引,但是,据我所知,它是一个视图,我不能为它创建一个索引。

代码语言:javascript
复制
ALTER TABLE `INFORMATION_SCHEMA`.`COLUMNS` ADD INDEX `table_name__table_schema` ( `TABLE_NAME` , `TABLE_SCHEMA` )

1044 -拒绝用户'root'@'%‘到数据库'information_schema’的访问

总体上有40种“模式”,我经常使用。

是否有一种方法可以使查询尽可能快地进行优化?

查询解释:

EN

回答 1

Stack Overflow用户

发布于 2020-04-12 17:46:14

在存储物化视图时创建物化视图,因此您可以在其上创建索引。下面是mysql中物化视图语法的引用。

Materialized view in mysql

虽然我想知道为什么你说有时迟到,有时快,你不认为越多的数据,更多的时间。视图从未正确存储,但视图仍然从表中获取很少或所有列。当视图访问表本身的列时,是否尝试在所有表的唯一列上建立索引?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61175337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档