如何加速 INNER JOIN MySQL 查询

How to speed up INNER JOIN MySQL Query

我在从 2 个 sql 表中提取数据时遇到性能问题。它非常非常慢。当我删除 INNER JOIN 时,页面会立即加载。

$query = "SELECT sc.*, dr.fullName, dr.email, dr.mobile, dr.address1, dr.town, dr.postCode, dr.utr, dr.vatNo, dr.driver_number, dr.pt, dr.siteLoc, dr.vatCharge, dr.vraRate, dr.third_party_provider
FROM scheduling sc
INNER JOIN driverReg dr ON dr.ni = sc.ni
WHERE sc.ref = '".$ref."' AND sc.excluded = 'No'";

有没有人有更好的方法来更快地提取这些数据?

确保你在 table 调度列上有一个复合索引 (ref, excluded,ni )

和 table driverReg 列 ni

上的索引
 create index  myidx1 on scheduling (ref,  excluded,ni )
 create index  myidx2 on driverReg (ni )

无论如何与性能无关但为了安全..你应该避免在sql代码中使用php因为你有sqlijection的风险..为了避免这种情况你应该看看你的 mysql 准备好的语句和绑定参数的驱动程序