如何提高以下查询的性能?我应该使用什么样的索引?我正在使用 MySQL
SELECT b.title
FROM book b, person p, order o
WHERE b.bid = o.bid
AND o.pid = p.pid
AND b.title LIKE 'LOVE%';
如何提高以下查询的性能?我应该使用什么样的索引?我正在使用 MySQL
SELECT b.title
FROM book b, person p, order o
WHERE b.bid = o.bid
AND o.pid = p.pid
AND b.title LIKE 'LOVE%';
你应该看看MySQL 如何使用索引。
对于您的查询:
b.bid
,因为它们用于连接表。您甚至可能要考虑使用外键。o.bid
o.pid
p.pid
b.title
,因为你在 where 子句中使用了这个。但是,如果您想知道更改如何影响您的查询,您应该在每次更改之间进行分析,以检查它如何影响性能。
但是,我会要求您详细说明您的查询 - 您正在加入表order
和person
,但既不从这些表中选择也不在 where 子句中使用它们。您这样做只是为了选择已订购的书籍吗?在这种情况下,你为什么还要加入person
?