为什么查询information_schema下的TABLES这么慢?
一、为什么查询information_schema下的TABLES这么慢
一般有两个原因。1、是元数据太多,就比如你的例子总共七万多张表,information_schema在统计时需要挨个去show table status,需要花费的时间较长。2、是参数innodb_stats_on_metadata设置为on的情况下,具体说明参考官方文档,可以将其设置为off对比下效果。
优化INFORMATION_SCHEMA查询
尝试在子句中使用数据库和表名的常量查找值WHERE
您可以按如下方式利用此原则:
若要查找数据库或表,请使用计算结果为常量的表达式,例如文本值、返回常量的函数或标量子查询。避免使用非常量数据库名称查找值(或无查找值)的查询,因为它们需要扫描数据目录才能查找匹配的数据库目录名称。在数据库中,请避免使用非常量表名查找值(或无查找值)的查询,因为它们需要扫描数据库目录才能查找匹配的表文件。此原则适用于下表中显示的表,下表显示了常量查找值使服务器能够避免目录扫描的列。例如,如果要从INFORMATION_SCHEMATABLES,在子句中使用常量查找值可以避免数据目录扫描。
延伸阅读:
二、数据库和 SQL 概念
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它的产生距今已有六十多年。随着信息技术和市场的发展,数据库变得无处不在:它在电子商务、银行系统等众多领域都被广泛使用,且成为其系统的重要组成部分。
数据库用于记录数据,使用数据库记录数据可以表现出各种数据间的联系,也可以很方便地对所记录的数据进行增、删、改、查等操作。
结构化查询语言(Structured Query Language)简称 SQL,是上世纪 70 年代由 IBM 公司开发,用于对数据库进行操作的语言。更详细地说,SQL 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。
猜你喜欢LIKE
相关推荐HOT
更多>>怎么向VFP数据表中一次加入多条记录?
一、怎么向VFP数据表中一次加入多条记录以下均以SQL2000、VFP6及以上的表为例代码导入:查询分析器中执行如下语句(先选择对应的数据库)————...详情>>
2023-10-19 12:53:00MySQL的自增ID用完了应该怎么办?
一、MySQL的自增ID用完了应该怎么办解决方案1:使用BIGINT数据类型一种解决方法是使用BIGINT数据类型。BIGINT数据类型的最大值是92233720368547...详情>>
2023-10-19 12:04:41jdbc的resultset底层实现原理是怎样的?
一、jdbc的resultset底层实现原理是怎样的只了解 mysql, mysql 中的 result 默认会把所有结果拿回来。默认情况下,结果集完全检索并存储在内存...详情>>
2023-10-19 09:36:35为什么查询information_schema下的TABLES这么慢?
一、为什么查询information_schema下的TABLES这么慢一般有两个原因。1、是元数据太多,就比如你的例子总共七万多张表,information_schema在统...详情>>
2023-10-19 07:37:52热门推荐
pycharm的使用技巧都有哪些?
沸C语言中定义与声明的含义是什么?
热怎么向VFP数据表中一次加入多条记录?
热JS的机制有哪些?
新MySQL的自增ID用完了应该怎么办?
C++ 写即时通讯服务器用什么数据库比较合适?
云数据库并发数和连接数是个怎样的关系?
为什么现在MySQL无法重命名数据库?
mysql.sock文件是怎么起作用的?
jdbc的resultset底层实现原理是怎样的?
Oracle/MySQL数据库创建索引的原则是什么?
Oracle怎么修改某个字段特定位置的字符?
为什么有些低端云主机(1CPU,4G内存)也提供SQLServer,这大型数据库,能运行吗?
为什么查询information_schema下的TABLES这么慢?