我有数百万(30-1 亿)条包含多列的记录。我需要在多列上对这些数据进行排序并在页面中显示它们。存储这些数据的最佳方式是什么?
假设有一个包含列 T(id, c1,c2 ... cn) 的表。在 MYSQL 中,这个查询看起来像这样:
通过cx、cy限制1000、1000从T订单中选择id
我可以假设它是一个只读表,但我需要快速响应。
NoSQL 数据库有什么优势可以解决这个问题吗?
最佳答案
如果您的表已正确建立索引,即使有数百万条记录,速度也会相当快。当您开始添加条件时,例如 WHERE some_date < now() 表分区可能也会有所帮助,但您必须提前计划以使分区适合您的需求,否则可能会减慢速度。
NoSQL 的优点是速度和灵活的模式,但对于数百万条记录,它需要大量的内存,而且在某些情况下,比如 Redis,它在写入磁盘等时需要有 50% 的内存可用于 fork 。您现在得到的回复还不够快吗?您的查询是否命中了正确的索引?
关于mysql - 对大数据进行排序的最佳数据存储是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12752694/