MySQL базы данных для моделирования очереди - PullRequest
0 голосов
/ 03 декабря 2011

Я моделирую несколько очередей инструкций, используя таблицу mysql. Существует столбец «mode», который является именем для каждой очереди, и как только элементы извлекаются из очереди, они сразу удаляются. Типичные запросы выглядят как

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

В настоящее время я использую таблицу MYISAM для этого, но есть много накладных расходов, так как удаление и оптимизация занимают много времени. Мне просто интересно, есть ли более эффективный способ сделать это и, возможно, база данных должна быть INNODB.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2011

Не могу сказать, что полностью понимаю вашу проблему, но я уверен, что если вы сделаете свои поля фиксированного размера (т.е. без полей text, char вместо varchar), записи таблицы станут чрезвычайно многоразовыми и требуют многократного использования.оптимизации вообще нет.

0 голосов
/ 03 декабря 2011

InnoDB полезно, если вы подразумеваете Ограничения внешнего ключа .Итак, одна вещь для оптимизации вашего запроса.

создать индекс для столбца mode, а также не использовать * (может быть, в вашей таблице много столбцов), написать имя столбца, который вам нужно только получить.

...