我怎样才能使 运行 更快?
How may I make this run faster?
自从我添加了 ORDER BY r.id DESC 后,我的查询 运行 变得非常慢。没有限制它 运行 也真的很慢。请让我知道如何让它 运行 更快。
SELECT * FROM gl g, ran_to_payment r
WHERE r.refLedgerID = g.studentLedgerID
AND r.refLedgerID != 0
AND g.subAccount > 0
AND r.feeType = 1
AND g.subAccount != r.ran
ORDER BY r.id DESC
LIMIT 100
谢谢
避免在查询中使用*
。只需 select 您需要的列。不管怎样,请试试这个,让我知道是否可以更快一点。
SELECT * FROM gl g
INNER JOIN ran_to_payment r ON r.refLedgerID = g.studentLedgerID
AND r.refLedgerID != 0
AND g.subAccount > 0
AND r.feeType = 1
AND g.subAccount != r.ran
ORDER BY r.id DESC
"id" 列是否已编入索引?将其编入索引会加快您的查询速度。要找出你在 table 上有哪些索引,你可以 运行 以下查询。
SHOW INDEX FROM ran_to_payment;
如果尚不存在,您可以像这样更改 table 来添加一个:
ALTER TABLE `ran_to_payment` ADD INDEX `ran_to_payment_id` (`id`)
INDEX(feeType, refLedgerID) -- on r
INDEX(studentLedgerID) -- on g (if it is not already the PRIMARY KEY
自从我添加了 ORDER BY r.id DESC 后,我的查询 运行 变得非常慢。没有限制它 运行 也真的很慢。请让我知道如何让它 运行 更快。
SELECT * FROM gl g, ran_to_payment r
WHERE r.refLedgerID = g.studentLedgerID
AND r.refLedgerID != 0
AND g.subAccount > 0
AND r.feeType = 1
AND g.subAccount != r.ran
ORDER BY r.id DESC
LIMIT 100
谢谢
避免在查询中使用*
。只需 select 您需要的列。不管怎样,请试试这个,让我知道是否可以更快一点。
SELECT * FROM gl g
INNER JOIN ran_to_payment r ON r.refLedgerID = g.studentLedgerID
AND r.refLedgerID != 0
AND g.subAccount > 0
AND r.feeType = 1
AND g.subAccount != r.ran
ORDER BY r.id DESC
"id" 列是否已编入索引?将其编入索引会加快您的查询速度。要找出你在 table 上有哪些索引,你可以 运行 以下查询。
SHOW INDEX FROM ran_to_payment;
如果尚不存在,您可以像这样更改 table 来添加一个:
ALTER TABLE `ran_to_payment` ADD INDEX `ran_to_payment_id` (`id`)
INDEX(feeType, refLedgerID) -- on r
INDEX(studentLedgerID) -- on g (if it is not already the PRIMARY KEY