也许使用JOIN不是这里的最佳选择,但是这里是场景:
我有两张桌子,一张是房子,另一张是房子里的物品。
我有50个房子和8000个物品。
最后,每个对象将是黑色或白色(布尔值)。
每个物体必须与每个房子相关联,每个物体必须是黑色或白色,这意味着,通过我目前的设计,将有400,000条记录(8,000个,8,000个一直到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_ID"一次增加到2"对象"达到8,000。这种递增持续到House_ID达到50。
必须有一种更好的方法来创建房屋和对象之间的关联,其中每个对象必须具有特定的房屋ID,并且在服务器上并不那么费力。
BTW,我使用INNER JOIN来组合两个表。我认为这可能是错的,但不知道解决方法。在phpMyAdmin中执行SQL查询。
我如何加入或设置我的表格/查询以使其不那么麻烦?
答案 0 :(得分:0)
您可能需要调查索引表格。对于你正在做的事情,这实际上是一个相当小的数据集。
如果您的表名是房屋和物品,请尝试:
CREATE INDEX houses_index ON houses (House)
和
CREATE INDEX house_objects_index ON objects (HouseID,Object)
如果我认为索引尚不存在,这将使您的查询运行得更快。
(您可能还希望保持表格之间的列名一致;在一个表中调用字段House而在另一个表中调用HouseID,我认为,比在两个地方调用HouseID更令人困惑。)