TIDB数据库查询information_schema.tables表时,select慢,有什么优化方案吗

查询information_schema.tables表时,select慢,有什么优化方案吗.
查询语句为
SELECT 1 FROM information_schema.tables WHERE table_schema=‘core’ and table_name =‘ifc34041’ LIMIT 1;

这个是查询数据库元数据,真没什么好方法

同场景下,mysql查询就很快很多,没有啥优化方案了吗

LIMIT 1不加试试呢

集群负载高吗,select有多慢?
能不能explain analyze发出来看下?

查询元数据或者一些内存表,都有慢的现象,这个没法调整

是不是表很多啊

是不是对象太多?

可以查询看看:

SELECT
    db_name,
    table_name,
    ROUND(SUM(total_size / cnt), 2) Approximate_Size,
    ROUND(SUM(total_size / cnt / (SELECT
                    ROUND(AVG(value), 2)
                FROM
                    METRICS_SCHEMA.store_size_amplification
                WHERE
                    value > 0)),
            2) Disk_Size
FROM
    (SELECT
        db_name,
            table_name,
            region_id,
            SUM(Approximate_Size) total_size,
            COUNT(*) cnt
    FROM
        information_schema.TIKV_REGION_STATUS
    WHERE  table_name IN ('TABLES')
    GROUP BY db_name , table_name , region_id) tabinfo
GROUP BY db_name , table_name;

这个问题我记得之前也有个老哥问过,当时trace了下sql,和几万个region做交互,把我惊呆了 :joy:

元数据查询确实比MySQL慢一些

我自己试了下,单机都挺慢,有10几倍的差距,这一块tidb 确实要优化下了 :joy:

这个就快不了啊

这个没法快吧,就一个简单测查询语句也没啥好优化的了。

你说的这个吧,估计类似 :thinking:
查元数据表巨慢 - :ringer_planet: TiDB 技术问题 / 性能调优 - TiDB 的问答社区 (asktug.com)

嗯,我试试

:innocent:
你发的这个贴子就是我发的

哈哈哈 :joy:

元数据表不是有table cache说法,照理说速度不该慢

TIDB有开启这个配置tidb_enable_prepared_plan_cache: true