【发布时间】:2015-02-26 21:33:16
【问题描述】:
假设我有一个代表“任务队列”(数千万条记录)的表。
任务可以“排队”或“完成”。
如果我们要抓取 10 个任务来处理,哪个性能更好?
- 带有“标志”列的单个表,例如
ENUM/BIT/TINYINT将任务标记为已完成或未完成(最终在列上建立索引) - 为排队的任务和已完成的任务分开表,并将每个已完成的任务从排队插入到已完成删除
请注意,在开始时,我们有几个或没有完成的任务,但随着处理的进行,将会有数百万个已经完成的任务。
【问题讨论】:
-
你可以指定dbms。
-
@jarlh 目前是 aboyt MySQL,但也在 Oracle 上下文中询问,因此未指定。
标签: sql database performance indexing schema