【问题标题】:MySQL shared table or table in each databaseMySQL共享表或每个数据库中的表
【发布时间】:2012-06-15 12:12:53
【问题描述】:

我有这样的情况,在我的系统中有很多数据库,对于一些查询,我需要使用同一个表“小时”,它基本上有一个字段“h”并存储小时,如“00”,... ,'23'。

我的问题是关于效率,是创建单独的数据库并将此表存储在那里更好还是在每个数据库中都有此表。我的查询将如下所示:

SELECT ... FROM hours CROSS JOIN some_table ...

谢谢!

【问题讨论】:

    标签: mysql database performance select


    【解决方案1】:

    无论哪种方式,您都必须修改所有“非本地”查询才能使用该表

    SELECT ...
    FROM sometable
    CROSS JOIN dbname.hours
    

    如果它卡在自己的数据库中,那么您必须修改所有查询。如果它在“真实”数据库之一中,您只需修改 n-1 个查询。另外,如果您为不同的数据库使用多个不同的 mysql 帐户,则必须对该表授予适当的权限。

    【讨论】:

    • 问题在于查询的效率,而不是修改。如果表在同一个数据库中还是在不同的数据库中,缓存或 MySQL 处理查询的某种内部方式有什么区别?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多