Различие между движками 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() |