The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск СУБД SQLite 3.39

25.06.2022 23:14

Опубликован релиз SQLite 3.39, легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.

Основные изменения:

  • Добавлена поддержка операций правого и полного внешнего соединения таблиц - "RIGHT OUTER JOIN" и "FULL OUTER JOIN".
  • Предложены новые операторы сравнения - "IS NOT DISTINCT FROM" и "IS DISTINCT FROM", которые идентичны ранее доступным операторам "IS" и "IS NOT", и добавлены для улучшения совместимости с SQL-стандартами и PostgreSQL.
  • На Unix-системах обеспечено раскрытие всех символических ссылок в именах БД для определения канонического имени базы данных перед открытием файла.
  • Разрешено применение выражения HAVING для любых агрегирующих запросов, в том числе, не содержащих выражение "GROUP BY".
  • Внесены многочисленные микрооптимизации, в сумме позволившие снизить нагрузку на CPU в тестах на 2.3%.


  1. Главная ссылка к новости (https://sqlite.org/releaselog/...)
  2. OpenNews: Выпуск СУБД SQLite 3.38 и набора утилит sqlite-utils 3.24
  3. OpenNews: Опубликован проект Litestream, реализующий систему репликации для SQLite
  4. OpenNews: Выпуск rqlite 7.0, распределённой отказоустойчивой СУБД на основе SQLite
  5. OpenNews: Проект DuckDB развивает вариант SQLite для аналитических запросов
  6. OpenNews: Уязвимость в SQLite, позволяющая удалённо атаковать Chrome через WebSQL
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57408-sqlite
Ключевые слова: sqlite
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (45) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:32, 25/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Лучшее что придумали за последний десяток лет.
    Бэкап файлика вместо дампов - отдельный респект.
    Для небольших и не особо требовательных проектов - лучшее решение.
     
     
  • 2.2, Dzen Python (ok), 23:39, 25/06/2022 [^] [^^] [^^^] [ответить]  
  • –9 +/
    Именно что для небольших и именно что для нетребовательных.
    Чуть дальше выйди за рамки установленных скулёжем - шиш и миннное поле, засеянное порослью костыльных граблей, костылей из грабель и граблекостылей.

    А так да, идеальный софт в своей нище.

     
     
  • 3.7, Аноним (7), 00:33, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да не, нормально. Главное, добавить слипов, чтобы запись из разных потоков не пересекалась. У меня так сотня тредов запущена и записи даже почти не пересекаются в итоге (а они все много пишут и уходят поспать). Даже вообще не пересекаются больше, без достаточных слипов эта сотня тредов часто долбилась и обламывалась. К тому же, куда надёжнее, скажем leveldb, которая, похоже, умирает и вайпает всё, если её не закрыть при сегфолте. Да, я в курсе, что это разные вещи.

    С тех пор, как жсон добавили, вообще годно. Ну, раньше приходилось очень костылять, но в прошлой версии добавили синтаксис для жсона и стало очень хорошо и удобно.

     
     
  • 4.9, fghj (?), 01:16, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Да, "sleep" для решения проблем с многопоточностью это именно то что нужно,
    можно еще разрешить программе использовать одно ядро, тогда точно все многопоточнненко будет работать.
     
     
  • 5.11, Аноним (7), 01:32, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если это работает, то это не глупо. Пока потоков было до 20 штук, вообще не сталкивался. На 100 уже пришлось разносить время запуска. Дело в том, что у постгри, вместо которой используется sqlite локально (и в целях экономии), таких проблем нет.
     
     
  • 6.13, funny.falcon (?), 02:28, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Так а почему мьютекс не добавить?

    И, если память не изменяет, в какой-то из последних версий добавили отключение тайм-аута, чтобы писатель ждал бесконечно другого писателя. Могу ошибаться.

    WAL mode то включили?

     
     
  • 7.21, Аноним (21), 09:03, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Акторный фв не пробовали юзать, для того чтобы лианеризировать записи? sobjectizer, rotor (C++)?
     
  • 7.28, Аноним (7), 14:58, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что это вообще не проблема, только у sqlite претензии. Ну хотя бы можно читать во много тредов. Спасибо, попробую покрутить таймауты при необходимости, правда за 6 месяцев аптайма может быть 1 раз на забитом IO такое внезапно случилось (несколько тредов встретились), поэтому можно не беспокоиться, я думаю.
     
     
  • 8.31, _hide_ (ok), 15:56, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Что за бред Если не хочется синхронизаций, тогда пишем один потоком типо ворке... текст свёрнут, показать
     
     
  • 9.35, Аноним (7), 16:34, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У меня уже есть пул подключений, которым заведует ORM Любые попытки его уменьша... текст свёрнут, показать
     
     
  • 10.46, _hide_ (ok), 09:40, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Нда, типо я выжрал весь IO и мне в кайф использовать SQLite там где нужна полн... текст свёрнут, показать
     
     
  • 11.47, Аноним (7), 10:43, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да сеть я выжрал, а не IO Обновить 10000 записей за час и добавить сотню новых... текст свёрнут, показать
     
     
  • 12.48, _hide_ (ok), 13:36, 29/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Или у Вас очень сильно большие записи не чай JSON строки по 10 МБ в базе обновл... текст свёрнут, показать
     
  • 2.8, Аноним (7), 00:36, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Оно довольно тормозное. Программы, которые используют, довольно тормозные. Особенно, на мобилках. Ну, и запись из нескольких потоков придётся организовывать отдельно, понадобится какой-нибудь менеджер с обвязкой из семафоров и это всё конечно будет ещё больше тормозить.
     
     
  • 3.10, fghj (?), 01:22, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А какой смысл многопоточно писать в один небольшой файл даже если бы sqlite поддерживал многопоточность? Физически в один и тот же "erase" сектор NAND одновременно двум и более писать не удаться. Поэтому просто выделите отдельный поток для sqlite и к нему очередь задач и все.
     
     
  • 4.12, Аноним (7), 01:43, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Смысл в том, чтобы писать многопоточно. Он поддерживает многопоточность, например, чтений там производится куда больше, чем записей, и с этим никаких проблем. А насчёт ссд, я думаю, контроллер должен с этим разбираться, но это не самое узкое место -- с сетью дела куда хуже обстоят. Я не знаю, как прикрутить очередь задач к ORM, поэтому вряд ли. А вот блокировать, пока кто-то уже пишет, вполне себе вариант, но это, опять же, приведёт к лишним усложнениям, специально для sqlite, ну т.е. роллбэк и повторить коммит это не такие ужасные усложнения по сравнению с синхронизацией асинхронного приложения.
     
     
  • 5.19, Аноним (19), 08:27, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Пиши просто: ты не знаешь. Ни как он работает, ни чем его заменить "более производительным". И если софт ты пишешь задницей, то он будет тормозить на чём угодно
     
     
  • 6.27, Аноним (7), 14:47, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Почему не знаю? Это же просто. Переключаешь тип дб и настройки, и используешь ту же схему с постгрей. Для 1 пользователя, очевидно, оверкил. А тормозит то не мой софт, мой как раз не тормозит.
     
  • 3.30, Тот Самый (?), 15:52, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >Программы, которые используют, довольно тормозные. Особенно, на мобилках.

    Есть альтернативы sqlite для организации локальных хранилищ на мобилках? Поделись.

     
     
  • 4.32, Аноним (32), 16:13, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Нет альтернатив, вот я хочу ,GlueSQL попробовать прикрутить к React Native.
     
     
  • 5.41, Бывалый смузихлёб (?), 07:05, 27/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > вот я хочу ,GlueSQL попробовать прикрутить к React Native

    Но зачем ?

     
  • 3.43, Совершенно другой аноним (?), 10:31, 27/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну, и запись из нескольких потоков придётся организовывать отдельно, понадобится какой-нибудь менеджер с обвязкой из семафоров и это всё

    Вообще-то поддержка многопоточности в SQLite есть - https://sqlite.org/threadsafe.html

     
     
  • 4.44, Аноним (7), 11:08, 27/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Конечно, есть. Только закоммитить данные из 2 потоков одновременно нельзя.
     
  • 2.25, pashev.ru (?), 10:41, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Бэкап файлика вместо дампов - отдельный респект.

    Лол. Ты делаешь это не правильно. RTFM.

     
     
  • 3.45, topin89 (ok), 02:28, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    "Ты неправ, как надо не объясню, читай тонны текста в поисках истины". Ну это просто грубо.

    Да, если попытаться просто скопировать на горячую, выйдет битая копия, проверено.
    Да, нужно запускать

    sqlite3 my_database.sq3 ".backup 'backup_file.sq3'"

    или делать подобный запрос в своём коде.
    Но если 100% база закрыта, можно и файлами (включая всякие .wal, если write-ahead включен).

     
  • 2.29, анонимиус (?), 15:31, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Access лучшее решение для небольших и не особо требовательных проектов :)
     

  • 1.3, Аноним (32), 23:45, 25/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Хорошая БД, но я жду развития новой GlueSQL embedded БД, написанной на Rust.
     
     
  • 2.4, Аноним (32), 23:48, 25/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пишите, пожалуйста, новости и про эту БД. Она по сути прямой конкурент.
     
     
  • 3.20, Аноним (19), 08:28, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ей до конкурентоспособности лет 20
     
     
  • 4.33, Аноним (32), 16:21, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Конкретнее?
     
     
  • 5.34, Бывалый смузихлёб (?), 16:26, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    сабж десятилетиями гонялся на огромном количестве разных устройств, разной конфигурации и под разными ОСями
    и попутно допивался под энные требования и условия, правились баги
    Это с одной стороны
    С другой - штуковина, вчера появившаяся, без каких-либо конкретных запросов со стороны бизнеса
     
     
  • 6.36, Аноним (32), 17:41, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Обожаю "экспертов" opennet)))

    Ага, ага, конечно, десятилетиями гонялся, миллионы устройств протестировано, не трогайте идеальный софт!

    https://www.sqlite.org/src/rptview?rn=1

    ALTER TABLE DROP COLUMN may corrupt data

    Incorrect query result due to the SeekScan optimization

    Incorrect LIKE result

    и так далее.

    Такое может написать только человек в глаза не видевший SQLite и его код (неподдерживаемый).

     
     
  • 7.38, Бывалый смузихлёб (?), 18:08, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Такое может написать только человек в глаза не видевший SQLite и его
    > код (неподдерживаемый).

    Такое может написать только человек в глаза не видевший разработки под мобильные платформы и их код, а впрочем. и под встройщину тоже

    Причём, речь не о том, что код sqlite изначально был годным - он был гамном и его долго пинали корпорасты и вообще все кому не лень, допиливали проггеры итд итп. И в итоге получалось что-то, что даже более-менее работает и обычно есть на множестве платформ.. так или иначе

    А новой СУБД предстоит примерно то же самое но с самого начала и это процесс совсем небыстрый
    И, в отличие от sqlite, теперь у сабжа будут вполне серьезные аналоги, которые уже работают

     
     
  • 8.39, Аноним (32), 18:26, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ясно, по сути ответить то и нечего SQLite в основном пилится 1 человеком-авторо... текст свёрнут, показать
     
     
  • 9.42, Совершенно другой аноним (?), 10:30, 27/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Почитайте про разработку SQLite, на хабре были два интервью с его автором https... текст свёрнут, показать
     
     
  • 10.49, Прохожий (??), 09:41, 02/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Как эта статья объясняет вот это всё-таки https www sqlite org src rptview rn ... текст свёрнут, показать
     
     
  • 11.50, Совершенно другой аноним (?), 17:11, 05/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Библиотека активно развивается и в новом функционале, для которого, возможно, те... текст свёрнут, показать
     
  • 3.23, Аноним (23), 10:17, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это ты очень смешно пошутил, ценю.
     
  • 2.6, Dzen Python (ok), 23:59, 25/06/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Очередной такой же как sqlite и embed-движки, но другой, да? И это будет снова программная революция, меняющая рынок embed-движков на время хайпа?

    Эх, история спиральна. Раньше мы потешались над майрософт, как они писали новый COM+, такой же как DDE, но другой; как они писали, а затем огребали в судах, потом переписывали j# - такой же как java, но другой. Теперь мы потешаемся на растерами, которые пишут такие же coreutils, но другие.

     
     
  • 3.17, Аноним (17), 07:10, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Завтра выйдет язык ИМЯКАКОЕТО и опять на тебе грабли наступят. Будут пытаться свои студенческие поделки продвигать вместо текущих поделок. Так м живём.

    Вангаматор говорит, что ржавчина так и останется в малой нише, из которой так и не выйдет, а через лет 5 появится новый язык "убийца" сишки. И повторится то, что сейчас происходит.

     
     
  • 4.18, Аноним (18), 07:43, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну повторится и что? По-твоему все обязаны в легаси коде постоянно копаться?
     
     
  • 5.22, Аноним (17), 09:17, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Одно дело когда у тебя система с 1-10 миллионами строк, а другое утилита с 1-10 тысячами, в которой ничего не нужно трогать, так как за 100500 лет она уже достигла пика своего развития. Не нужно исповедовать для такого ПО принцип "Когда коту делать нечего, он намывает свои...".
     
  • 4.24, Аноним (23), 10:18, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Будет язык zig
     
     
  • 5.40, Аноним (32), 23:31, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Писал на Zig. Rust однозначно лучше.
     

  • 1.26, fi (ok), 11:57, 26/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А вот когда они сделают seq чтоб без костелей?


     
  • 1.37, minonA (?), 17:49, 26/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошая БД
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру