用于队列模拟的mysql数据库类型

时间:2011-12-03 06:37:57

标签: php mysql queue innodb myisam

我正在使用mysql表模拟几个指令队列。有一个'mode'列是每个队列的名称,一旦从队列中取出项目,它们就会被删除。典型的查询看起来像

SELECT * FROM queue_table WHERE mode='queue1' LIMIT 50.  

我目前正在使用MYISAM表,但是所有删除和优化需要花费很长时间。我只是想知道是否有更有效的方法来执行此操作,如果数据库可能是INNODB

2 个答案:

答案 0 :(得分:0)

如果您暗示外键约束,则

InnoDB非常有用。 所以有一点可以优化你的查询..

mode列上创建索引,也不要使用*(可能是你的表有很多列),写一个你只需要重试的列名。

答案 1 :(得分:0)

我不能说我完全理解您的问题,但我确信如果您将使用固定大小的文件(即没有text字段,char而不是varchar)表格记录变得极其可重复使用,根本不需要优化。