我们有一个70G的MariaDB表。 100万行,每行100列。
问题是,查询需要10到15分钟。如果我们切换到“大数据” - 数据库,这个问题会解决吗?
MongoDB是一个很好的数据系统吗?
每天在该表中有大约300,000个新行。除此之外,不会有更新/删除。只需选择。
有人已经体验过这个话题吗? MariaDB真的会更快吗?
提前致谢。
任何类型的大型数据库都受到磁盘速度的限制。您将从一个I / O绑定数据库切换到另一个I / O绑定数据库。
相反,让我们来看看你在做什么的细节。即使使用慢速磁盘,十亿行表上的“点查询”也只需几毫秒。这是因为任何数据库(值得使用)都能够非常快速地通过索引查找行。
所以,很明显,你要么没有合适的索引,要么就是做一些复杂的事情。让我们看看SELECT
和架构(SHOW CREATE TABLE
)。它可能就像添加“复合”索引或重新构造查询一样简单。更换供应商不太可能成为解决方案。
好的,你给了我们一个线索:where date LIKE '201808%'
。我希望date
是DATETIME
或TIMESTAMP
。它不能使用索引,因为它需要在执行date
之前将每个LIKE
转换为字符串;因此进行表扫描。相反,做:
WHERE date >= '2018-08-01`
AND date < '2018-08-01` + INTERVAL 1 MONTH
那可以使用索引。
在WHERE
还有其他什么吗? using inex condition
听起来像是有别的东西。请告诉我们整个SELECT
。
你有一个LIMIT 10000
。这可能会也可能不会加快查询速度。还有一个ORDER BY
? GROUP BY
?那些可能需要一种排序。当排序发生时,所有工作都在看到LIMIT
之前完成。