Если вы хотите реализовать это самостоятельно, то, как упомянул @Aleksei, dirty_update_counter/3
- это путь.
Но если вы хорошо используете внешнюю библиотеку, обаMemento
и Amnesia
поддерживают пользовательскую реализацию автоинкремента.Вот как это будет выглядеть в Memento:
defmodule MyTable do
use Memento.Table,
attributes: [:id, :title, :content, :status, :author],
type: :ordered_set,
autoincrement: true
end
Кроме того, у Mnesia есть модель возможной согласованности, , поэтому, хотя она очень быстрая, она не дает мгновенных результатов.гарантии согласованности.Какую бы реализацию вы ни выбрали для автоинкремента, она определенно повлияет на производительность.
Полное раскрытие: я автор Memento