Решил поискать наиболее подходящий фришный биллинг для мелких нужд - типа посчитать IP трафик в небольшой конторке, дать туда доступ по VPN снаружи, посмотрел описания нескольких вариантов, abills на данный момент заинтересовал больше остальных, вот решил поставить дабы посмотреть поближе.
Однако все больше задаюсь вопросом..... почему большинство авторов биллингов выбирают mysql? почему например не postgresql?
Я например в postgresql вижу несколько преимуществ (хотя конечно современный mysql почти по всем параметрам догнал, но это требует дополнительных плясок с бубном).
1. Самое основное преимущество - версионность: т.е. если я решил сдампить базу pg_dump-ом, то я сбэкаплю снэпшот на момент начала бэкапа - с тем набором данных котоые были НА ТОТ МОМЕНТ. Если я буду дампить mysql - то возможно сдампить одну таблицу в одном состоянии а потом другую с уже дописанными записями по сравнению с состоянием на момент начала бэкапа.
Слышал что для исключения этих проблем в mysql - поднимают кластер и бэкапят с зеркала предварительно разорвав связь с
мастер-сервером.
В случае с конторой с 10-50 пользователями и небольшой базой это все не так страшно, а в случае более-менее крупного провайдера?
Неужели все поднимают зеркала или есть другие варианты? Остановку сервиса мы естественно не рассматриваем.
2. Журналируемое/транзакционное хранилище. Я конечно понимаю, что в идеальном случае стабильного ядра, софта и железа эта проблема не так актуальна, но в случае если повесится сервер -
его перезагрузка потребует чекинга всех таблиц MySQL а это
порой весьма приличное время.... postgresql чекал 6гиговую базу за несколько секунд, накатывал транзакции и запускался.
3. Процедуры хранимые на сервере - в 5м MySQL они конечно появились, а в postgres существуют давно. Ведь если рассудить логично - туда можно поместить большую часть бизнес-логики базы данных и тогда гибкость биллинга повысится в разы, ведь вся информация которой оперируют скрипты выполняя кучу запросов - находится в базе... так почему-бы эти запросы не оформлять в виде хранимых процедур а из биллинга только вызывать определенную процедуру для получения информации, а уж она сделает нужные запросы и выдаст готовый финальный ответ.
Я конечно не программер а юзер


А я пойду пока курить его скрипты и строить биллинг на отдельно взятой машине.
Олег.