Performance 如何使用连接优化mysql表中的大量数据

Performance 如何使用连接优化mysql表中的大量数据,performance,query-optimization,inner-join,Performance,Query Optimization,Inner Join,也许在这里使用连接不是最好的选择,但下面是一个场景: 我有两张桌子,一张放房子,另一张放房子里的东西 我有50栋房子和8000件物品 最后,每个对象将是黑色或白色布尔值 每个对象必须与每个房子相关联,每个对象必须是黑色或白色,这意味着,通过我目前的设计,将有400000条记录8000条,8000条2条,一直到对象表中的50条!不是优化的最佳选择。当我试图在我的网页上加载查询时,我的网站变成了吸大麻的老年蜗牛。它死了 我为房屋准备的表格如下所示: =========================

也许在这里使用连接不是最好的选择,但下面是一个场景:

我有两张桌子,一张放房子,另一张放房子里的东西

我有50栋房子和8000件物品

最后,每个对象将是黑色或白色布尔值

每个对象必须与每个房子相关联,每个对象必须是黑色或白色,这意味着,通过我目前的设计,将有400000条记录8000条,8000条2条,一直到对象表中的50条!不是优化的最佳选择。当我试图在我的网页上加载查询时,我的网站变成了吸大麻的老年蜗牛。它死了

我为房屋准备的表格如下所示:

==============================
House| Other cols | Other cols
==============================
1    |            |
2    |            | 
3    |            |
4    |            | 
to 50
============================
House_ID | Object | Color
============================    
1        | 1      | 1
1        | 2      | 1
1        | 3      | 0
1        | 4      | 1
1        | 5      | 0
我的对象表如下所示:

==============================
House| Other cols | Other cols
==============================
1    |            |
2    |            | 
3    |            |
4    |            | 
to 50
============================
House_ID | Object | Color
============================    
1        | 1      | 1
1        | 2      | 1
1        | 3      | 0
1        | 4      | 1
1        | 5      | 0
一旦对象达到8000,House_ID将增加到2。这个递增过程一直持续到House_ID达到50为止

必须有更好的方法在房屋和对象之间创建关联,其中每个对象都必须具有特定的房屋ID,并且不会对服务器造成太大的负担

顺便说一句,我正在使用一个内部联接来合并这两个表。我认为这可能是错误的,但我不知道如何解决它。在phpMyAdmin中执行SQL查询


如何连接或设置我的表/查询,以使其不那么麻烦?

您可能需要研究为表编制索引。对于您正在做的事情,这实际上是一个相当小的数据集

如果表名是房屋和对象,请尝试:

CREATE INDEX houses_index ON houses (House)

这将使您的查询运行得更快,如果我认为索引还不存在的话


您可能还希望表之间的列名保持一致;我认为,在一个表中调用字段House,在另一个表中调用HouseID比在两个位置调用它HouseID更容易混淆。

请显示要优化的查询、数据库名称及其版本。还请补充标记并为您的DBMS添加标记。在这两个表上是否创建了索引?是否定义了合适的主键?顺便说一句,创建索引可能会很慢,但它会加快后续工作。