Состоялся (http://permalink.gmane.org/gmane.comp.db.sqlite.announce/60) релиз SQLite 3.13.0 (http://sqlite.org/), легковесной базы данных, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.Основные новшества (http://sqlite.org/releaselog/3_13_0.html):
- В основную ветку принято расширение session (http://sqlite.org/sessionintro.html), позволяющее сохранять отдельно изменения в таблицах, а затем на основе сохранённых данных формировать "патч" для обновления другой БД с аналогичной схемой и совместимыми стартовыми данными. Иными словами, предоставляется аналог patch или "git merge" для БД;
- Связанный с временными файлам ввод/вывод теперь откладывается и осуществляется только в крайних случаях;
- В интерфейс командной строки (http://sqlite.org/cli.html) добавлена команда ".auth ON|OFF", включающая отображение запросов от систем авторизации;
- В интерфейс командной строки добавлена опция "--indent" для команд ".schema" и ".fullschema", включающая расстановку отступов для улучшения читаемости вывода;
- В интерфейс командной строки добавлена опция ".eqp full", применяющая к выполняемым выражениям дополнительно вызовы EXPLAIN и "EXPLAIN QUERY PLAN";
- В интерфейсе командной строки улучшена поддержка Unicode в именах файлов в окружении Windows;- Добавлена функция sqlite3_db_config(db, SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION) (http://sqlite.org/c3ref/db_config.html), позволяющая активировать загрузку расширений на базе C-API через sqlite3_load_extension(), из соображений безопасности оставив при этом отключенной загрузку функций SQL через load_extension();
- Изменён алгоритм поиска временной директории на Unix-системах, которая должна иметь установленные флаги исполнения и записи, но не допускать чтения содержимого.
URL: http://permalink.gmane.org/gmane.comp.db.sqlite.announce/60
Новость: http://www.opennet.me/opennews/art.shtml?num=44459
ух ты, а я и не знал про session - пришлось делать свой велосипед. сделал кучу тригеров, чтобы велась история :)
а я крутил педали через связку с inotify)Справедливости ради, session только в этом релизе появилось. Как можно было знать?
а надо было через fanotify
> $ man fanotify
> fanotify - отслеживание событий в файловой системе
> ОПИСАНИЕ
> Программный интерфейс fanotify уведомляет о событиях в файловой системе и перехватывает их. Например, его можно использовать для сканирования…
> Дополнительные возможности по сравнению с программным интерфейсом inotify(7): способность отслеживать все объекты в смонтированной файловой системе, давать права на доступ и читать или изменять файлы перед тем как доступ получат другие приложения.как-то так.
fleonis, ещё для некоторых видов данных прокатывает подход "никогда не менять строки в БД, только добавлять новые". Типа, если надо что-то изменить, то добавляешь новый элемент с обновлённым временем. Если нужно получить значение - берёшь наиболее новый элемент.Прокатывает, прямо скажем, не всегда. Но при этом иногда хорошо ложится на монгу/кассандру.
> Прокатывает, прямо скажем, не всегда.Не прокатывает, очевидно, когда записей больше 100?
Чепуха. Для тех же биллингов это штатый режим работы, а уж там-то строк поболе будет. Но не SQLite, конечно.
Чепуха. В том же биллинге только resource use log так работает, остальное - нет.
В тех, что я видел - так работало всё - от финансов (само собой) до состояния файрволла. UTM тот же.
> Для тех же биллингов это штатый режим работыДа как хоть?! Оно ж таким макаром тормозить должно через пару месяцев/лет работы! :(
с денормализацией (хотя бы через material views) и партиционированием - не должно
Именно этим первые социальные сети объясняли то, что их данные не исчезают даже после удаления.
> Именно этим первые социальные сети объясняли то, что их данные не исчезают
> даже после удаления.Потому что там не идиoты разрабатывали. Ну-ка, попробуй удалить - даже с использованием индекса - одну строку из таблицы 100 млн строк. И-да, учти, это _маленькая_ таблица, а даже не средняя.
Вставлять строки - дешево, выбирать - по B-tree индексам - быстро, а удалять - дорого песдетс.
Что вам, краем уха слышавшим, о RDBMS, еще объяснить?
При этом уникальные ключи становятся неуникальными и прочий головняк
> При этом уникальные ключи становятся неуникальными и прочий головнякЭто смотря кто пишет.
Ошибка всегда в генах, вопрос лишь - в чьих.