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