假设我有一个巨大的网站和一个包含几列(例如“ID”、“AuthorID”、“消息”、“时间”)的巨大表(包含数百万条目表),以包含类似 twitter 的消息。
我想执行以下简单查询:
SELECT * FROM HugeTable ORDER BY Time DESC LIMIT 1,10;
此查询应执行很多次(每秒数十次)。如何确保此查询非常快?
我认为 memcached 可能是一个解决方案,但是新帖子很快就会添加,并且使用 memcached 我会向用户提供“旧”消息。
假设我只有一台 mysql 服务器,它可以处理所有流量。
我的问题是服务器应该取整个表,对其进行排序(这里是巨大的瓶颈),然后只取前 10 个。那么,我能做的最好的优化是什么?分区可能吗?此外,在表格内部,较新的帖子放在底部,因此可以安全地假设新帖子的“ID”和“时间”>= 比以前的帖子。
提前致谢。
PS:我不是MySql的专家(尽管我知道基础),我对NoSql方法一无所知。如果您认为 NoSql 足以满足我的任务,那么我愿意学习使用新的东西 :)