在Web应用程序中查询速度较慢,但在命令行中查询速度较快



我需要从由第三个表链接的两个表中检索记录。除了链接其他两个表的键之外,会话内容不包含我需要的任何信息。

我目前正在使用这些连接:

SELECT sessions.name, rooms.name, slots.type, slots.dayString, slots.startHour, slots.startMinute, slots.endHour, slots.endMinute
FROM slots
INNER JOIN sessions
INNER JOIN rooms
;

在SQLiteDB浏览器中只需要50毫秒,但当我调用相关的API端点时,需要数秒的缓冲时间。

如果加载需要这么长时间,我就不能使用它。除了限制它返回的行数(目前返回77000(之外,还有什么可以改善查询时间的吗?

除了键链接其他两个表。

但是您不使用这些键来设置链接表的条件,所以您实际要做的是3个表的CROSS连接,结果是所有表的所有行的笛卡尔乘积
对每个联接使用ON子句来设置条件:

SELECT sn.name, r.name, s.type, s.dayString, s.startHour, s.startMinute, s.endHour, s.endMinute
FROM slots s 
INNER JOIN sessions sn ON sn.slot_id = s.slot_id
INNER JOIN rooms r ON r.room_id = sn.room_id;

将我在ON子句中使用的列名更改为实际的列名。

最新更新