Подрывную деятельность легко масштабироваться и распасться. По необходимости затраты тысячи долларов только для горстки сотрудников, пути к дорогому, и кроме того, это не предлагает ничего, что не предлагает подрывная деятельность.
Подрывная деятельность действительно легка, лучше, чем cvs.
я рекомендовал бы мерзавцу, если только их поддержка окон была лучше
Значение этой функции обновит a, если используется в mnesia: transaction
update_a(Tab, Key, Value) ->
fun() ->
[P] = mnesia:wread({Tab, Key}),
mnesia:write(P#pixel{a=Value})
end.
Предложение: загляните в QLC, если вам нужен синтаксический сахар, который больше похож на синтаксис SQL.
Производительность, конечно, лучше всего протестирована, но QLC имеет накладные расходы, я не уверен, что они уместны по сравнению с другими деталями. Я просто подумал, что приведенный вами пример SQL обновит все записи с i = 1
. Использование QLC для извлечения этого набора записей лучше, чем вызовы mnesia.
Также следует отметить, что wread
заявляет о блокировке записи непосредственно в записи, потому что мы заранее знаем, что будем обновлять эту запись. Это микрооптимизация, чтобы сначала избежать блокировки чтения, а затем передумать и получить блокировку записи. Однако я долгое время не тестировал это.
Если производительность по-прежнему остается проблемой, вам следует изучить различные подходы, в которых используются грязные операции. Но вам действительно стоит попытаться выяснить, сколько транзакций в секунду вам нужно, чтобы быть «достаточно быстрым».
Я считаю, что вам нужно прочитать «строку», обновить любое поле, которое вам нужно, а затем записать результат и все эти операции в рамках «транзакции».