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

问题描述 投票:0回答:2

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

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

我目前为此使用

MYISAM
表,但所有删除和优化都需要很长时间,因此会产生大量开销。我只是想知道是否有更有效的方法来做到这一点,数据库是否应该是
INNODB

mysql queue innodb myisam
2个回答
0
投票
如果您暗示

外键约束

 ,则 
InnoDB 非常有用。 所以优化你的查询的一件事..

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


0
投票

我不能说我完全理解你的问题,但我确信如果你将你的文件设置为固定大小(即没有

text
字段,
char
而不是
varchar
),表记录将变得非常可重用并且不需要优化完全没有。

© www.soinside.com 2019 - 2024. All rights reserved.