如何改善查询时间?我有一个表,用于与这些字段进行存钱交易:

id, customersId, paymentId, amount, cash, createDate


我的查询获得了客户交易:

SELECT id,amount,cash,createDate
FROM customers_transactions
WHERE customersId = 2784


该表具有1000万条或更多的记录。该查询大约需要13秒钟才能执行。

该表具有以下索引:

id, customersId (unique)
customersId, createDate (unique)


这些分区:

10 partiotions By RANGE on customersId
LESS THAN 1000
LESS THAN 2000
LESS THAN 3000
LESS THAN 4000
LESS THAN 5000
LESS THAN 6000
LESS THAN 7000
LESS THAN 8000
LESS THAN 9000
LESS THAN 10000


服务器具有8 GB RAM,CORE i5 3.2GHz

我想运行此查询少于0.5秒

最佳答案

摆脱分区,除非您需要它们用于其他用途。

我们可以创建覆盖索引(索引包含所有需要的列),但这实在是太过分了。

另外-
将ID设为主键并抛出id, customersId (unique)

P.s.
为什么会有createDatecustomersId, createDate (unique)

关于mysql - 在大表上加快SELECT查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40867751/

10-13 03:17