我有一个大的数据集,出于学习的原因,我需要输出到一个表中,我在一个本地服务器上工作。
我第一次写这段代码

mysqli_query($con,"SELECT xxx, yyy, zzz FROM table1 ORDER BY xxx ASC LIMIT 0, 100");

这是可以的,它需要一瞬间输出值。
问题是我需要将table1连接到同一数据库的另一个表中,所以我这样做
mysqli_query($con,"SELECT xxx, yyy, zzz FROM table1 INNER JOIN table2 ON table1.yyy=table2.yyy ORDER BY xxx ASC LIMIT 0, 100");

而这个问题永远都是个问题。
有编码错误吗?我想没有,因为我在一个较小的数据库上用相同的表结构做了相同的查询,并且它工作了。
所以,我想问题是,当我执行join时,所有来自table2的值都被调用,而我糟糕的本地服务器无法完成查询(而且,我注意到使用了大量的磁盘空间,当执行第二个查询时,我谈到了几GB的空间)。
有没有办法像我对表1所做的那样,只从表2中选择很少的记录?我的意思是类似于SELECT xxx, yyy, zzz FROM table1SELECT yyy, www, aaa FROM table2的东西,并且只加入这些值。
谢谢大家!

最佳答案

我想是场冲突,
尝试

mysqli_query($con,"SELECT xxx, yyy, zzz FROM table1 INNER JOIN table2 ON table1.yyy=table2.yyy ORDER BY YOUR_TABLE.xxx ASC LIMIT 0, 100");

关于php - 内部JOIN性能:我只能选择几个值吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19490395/

10-12 12:39
查看更多