Различие между движками 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() | Возвращает удаленный кортеж, если есть таковой | Всегда возвращает nil | 
| передача управления | Не передает управление на запросах выборки, если не происходит коммит транзакции в журнал упреждающей записи (WAL) | Передает управление на запросах выборки или аналогичных: get() или pairs() |