Performance 如何使用连接优化mysql表中的大量数据
也许在这里使用连接不是最好的选择,但下面是一个场景: 我有两张桌子,一张放房子,另一张放房子里的东西 我有50栋房子和8000件物品 最后,每个对象将是黑色或白色布尔值 每个对象必须与每个房子相关联,每个对象必须是黑色或白色,这意味着,通过我目前的设计,将有400000条记录8000条,8000条2条,一直到对象表中的50条!不是优化的最佳选择。当我试图在我的网页上加载查询时,我的网站变成了吸大麻的老年蜗牛。它死了 我为房屋准备的表格如下所示:Performance 如何使用连接优化mysql表中的大量数据,performance,query-optimization,inner-join,Performance,Query Optimization,Inner Join,也许在这里使用连接不是最好的选择,但下面是一个场景: 我有两张桌子,一张放房子,另一张放房子里的东西 我有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添加标记。在这两个表上是否创建了索引?是否定义了合适的主键?顺便说一句,创建索引可能会很慢,但它会加快后续工作。