Различие между движками memtx и vinyl
Основное различие между движками memtx и vinyl в том, что memtx – in-memory движок, тогда как vinyl – это дисковый движок. Обычно in-memory движок быстрее: время выполнения запроса, как правило, менее 1 мс. Поэтому движок memtx оправданно используется в Tarantool по умолчанию. Однако если база данных не помещается в доступную память, а дополнительную память добавить невозможно, то лучше использовать дисковый движок, в данном случае vinyl.
Параметр | memtx | vinyl |
|---|---|---|
Поддерживаемые типы индексов. | TREE, HASH, RTREE или BITSET. | TREE. |
Временные спейсы. | Поддерживается. | Не поддерживается. |
Функция random(). | Поддерживается. | Не поддерживается. |
Функция alter(). | Поддерживается. | Поддерживается начиная с релиза 1.10.2 (первичный индекс изменить нельзя). |
Функция len(). | Возвращает количество кортежей в спейсе. | Возвращает приблизительное максимальное количество кортежей в спейсе. |
Функция count(). | Занимает фиксированное время. | Занимает переменное время в зависимости от состояния БД. |
Функция delete(). | Возвращает удаленный кортеж, если он есть. | Всегда возвращает |
| Не передаёт управление при запросах select, если только транзакция не зафиксирована в WAL. | Передаёт управление при запросах select или их эквивалентах: |