我正在使用mysql表模拟几个指令队列。有一个"模式"列,这是每个队列的名称,一旦项目从队列中取出,它们就会被删除。典型的查询类似于
SELECT * FROM queue_table WHERE mode='queue1' LIMIT 50.
我目前使用的MYISAM
表,但有很多开销与所有的删除和优化需要很长时间。我只是想知道是否有更有效的方法来做到这一点,如果可能数据库应该是INNODB
。
InnoDB
是有用的,如果你暗示外键约束。所以优化查询的一件事是…
在mode
列上创建索引,也不要使用*
(可能你的表有很多列),写列名,你只需要检索。
我不能说我完全理解你的问题,但我确信,如果你将使你的字段固定大小(即没有text
字段,char
而不是varchar
)表记录变得非常可重用,根本不需要优化。