我在Mariadb的MYISAM ENGINE中有一张非常大的桌子
这是表格付款:
ID;日期; costumer_id; paid_value
- ; ----; ----------; --------
我有141918688行
我有两个索引,id为primary,date为index,costumer_id为
如果我想查询按日期DESC排序的最后5笔付款
我有这个
SELECT paid_value FROM payments WHERE costumer_id=12 ORDER BY date DESC LIMIT 5
但需要0.5秒,并且只使用一个索引(customer_id),而不是fecha index(date)
为什么呢?如何改进查询以使用两个索引并在减去0.0x的情况下进行查询?因为这可能会成为一个更大的表格的未来问题
谢谢,对不起我的英文
答案 0 :(得分:1)
根据您当前的查询,您实际上是抓取与panel.smooth
相关的每笔付款。由于您只需要最后5个,因此您必须使用LIMIT
将获取的行限制为reg <- function(x, y, col) abline(lm(y~x), col=col)
panel.lm = function (x, y, col = par("col"), bg = NA, pch = par("pch"),
cex = 1, col.smooth = "red", span = 2/3, iter = 3, ...) {
points(x, y, pch = pch, col = col, bg = bg, cex = cex)
ok <- is.finite(x) & is.finite(y)
if (any(ok)) reg(x[ok], y[ok], col.smooth)
}
pairs(USJudgeRatings[1:5], panel = panel.lm,
cex = 1.5, pch = 19, col = adjustcolor(4, .4), cex.labels = 2,
font.labels = 2, lower.panel = panel.cor)
:
Customer 12