非常大的mysql表慢

时间:2018-03-14 23:50:52

标签: mysql

我在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的情况下进行查询?因为这可能会成为一个更大的表格的未来问题

谢谢,对不起我的英文

1 个答案:

答案 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