The OpenNET Project / Index page

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

Релиз СУБД SQLite 3.25 с поддержкой оконных функций

16.09.2018 10:11

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

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

  • Добавлена поддержка оконных функций (window-функции или аналитические функции), позволяющих для каждой строки запроса выполнить вычисления, используя другие строки. В отличие от агрегатных функций, которые свёртывают сгруппированный набор строк в одну строку, оконные функции производят агрегирование на основе содержимого "окна", включающего одну или более строк из результирующего набора;
  • Добавлена поддержка переименования столбцов при помощи команды "ALTER TABLE table RENAME COLUMN oldname TO newname";
  • При переименовании таблиц через "ALTER TABLE" реализовано автоматическое обновление всех ссылок на новое имя в триггерах и представлениях;
  • В состав включён новый модуль Geopoly с реализацией альтернативного интерфейса к R-Tree, использующего для обмена данными формат GeoJSON;
  • Внесены улучшения в оптимизатор запросов: Исключены излишние чтения столбцов в агрегатных запросах, если эти столбцы не упоминаются в агрегатных функциях и не используются в выражении "GROUP BY". Добавлена оптимизация "N-early-out", помогающая ускорить выполнение операции "IN" при наличии индексов, охватывающих несколько столбцов. Обеспечено раскрытие присвоения констант в блоке WHERE (например, "a=99 AND b=a" будет преобразовано в "a=99 AND b=99");
  • В VFS для UNIX-систем для каждой inode теперь применяется отдельный мьютекс, вместо общей совместной блокировки для всех inode. Изменение позволяет поднять производительность при использовании SQLite в многопоточных программах;
  • В "PRAGMA integrity_check" улучшено выявление проблем, связанных с порчей списка свободных страниц в хранилище;
  • Для индикации бесконечных значений команда ".dump" теперь использует число 1e999;
  • Устранена ошибка, которая при редком стечении обстоятельств могла привести к бесконечному зацикливанию в движке генерации байткода при выполнении оптимизации конструкции "ORDER BY LIMIT".


  1. Главная ссылка к новости (https://www.mail-archive.com/s...)
  2. OpenNews: В рамках проекта LiteTree развивается вариант SQLite с поддержкой ветвления БД
  3. OpenNews: Релиз СУБД SQLite 3.24
  4. OpenNews: Релиз СУБД SQLite 3.21
  5. OpenNews: Релиз СУБД SQLite 3.20.0
  6. OpenNews: Релиз СУБД SQLite 3.19.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49282-sqlite
Ключевые слова: sqlite
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (83) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, timur.davletshin (ok), 10:20, 16/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –11 +/
    Эх, всё бы было классно с этой sqlite, если бы она тормозить не начинала из-за фрагментации через какое-то время активного использования. А то VACUUM+REINDEX ломает запускать регулярно. На десктопе ещё ладно, это можно сделать, но они же его и на мобильные устройства запихивает во все места. Что с одной стороны оправдано, а с другой затрудняет обслуживание.
     
     
  • 2.2, Аноним (2), 10:48, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На мобильных устройствах в основном флэш, им фрагментация фиолетова.
     
     
  • 3.6, timur.davletshin (ok), 11:09, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –7 +/
    И пухнущая DB c кучей  dead tuples тоже им фиолетова. Мне кажется, что такие люди, как ты, в этих случаях бегут покупать новый телефон, т.к. старый "после обновления вообще тупить стал". Зацепись в режиме разработчика через adb shell и посмотри на это позорище до VACUUM+REINDEX и после.
     
     
  • 4.16, пох (?), 11:26, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > И пухнущая DB c кучей  dead tuples тоже им фиолетова.

    тоже.

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

     
     
  • 5.17, timur.davletshin (ok), 11:30, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Ой да ладно, LR не тормозит у него. Басни тоже мне рассказываешь. Оно уже OpenCL научилось или всё продолжает камень насиловать?
     
     
  • 6.20, пох (?), 11:41, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    не знаю, у меня нет поддержки opencl на той системе, где я вожусь с lr.
    при ее workflow все основное торможение происходит, когда все кнопки уже нажаты и я ушел от клавиатуры.

     
     
  • 7.21, timur.davletshin (ok), 11:46, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Я вам искренне сочувствую, т.к. работать без ускорения на GPU — тратить в ~5 раз больше времени (лично у меня) на генерацию preview и экспорт файлов. А на современных камерах с 24+ MPx это вообще становится адом.
     
     
  • 8.23, пох (?), 12:20, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    машина - она железная Флэшку засовываешь, идешь обедать - оно копируется и гене... текст свёрнут, показать
     
     
  • 9.28, timur.davletshin (ok), 12:38, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Вы реально считаете, что для такого workflow нужен LR Я бы рекомендовал вам отк... текст свёрнут, показать
     
     
  • 10.36, пох (?), 15:46, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    да он только под такой и заточен это средство массовой обработки по шаблону, а... текст свёрнут, показать
     
     
  • 11.38, timur.davletshin (ok), 16:06, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    ORLY То-то я смотрю интернеты пестрят мануалами по детальной возне с со всеми ... текст свёрнут, показать
     
     
  • 12.39, пох (?), 16:25, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    де6илов - которым еще и нужны мануалы в интернетах , ибо нормальную литературу ... текст свёрнут, показать
     
     
  • 13.43, timur.davletshin (ok), 17:08, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Нормальная литература для таких инструментов быстро теряет актуальность, т к от... большой текст свёрнут, показать
     
     
  • 14.53, пох (?), 19:49, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    нормальная литература для таких инструментов написана хрен знает когда Ничего с... текст свёрнут, показать
     
     
  • 15.54, timur.davletshin (ok), 20:06, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    У меня складывается впечатление, что вам встроенного в камеру преобразования raw... текст свёрнут, показать
     
     
  • 16.59, пох (?), 21:35, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    у меня сложилось впечатление, что в фотографии вы полнейший дилетант поэтому н... текст свёрнут, показать
     
     
  • 17.62, timur.davletshin (ok), 22:06, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну пока что больше информации для выводов предоставил ты, а не я ... текст свёрнут, показать
     
     
  • 18.71, x3who (?), 00:27, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ошибаетесь - в принципе очевидно, что вы не заморачивались обработкой фоточек ... текст свёрнут, показать
     
     
  • 19.72, timur.davletshin (ok), 05:36, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А в rawtherapee уже завезли маски и кисти, там можно хотя бы пятна на объективе ... текст свёрнут, показать
     
  • 19.73, пох (?), 11:02, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    дык, то же ж самое - rawtherapee, даже если абстрагироваться от ее болезней связ... большой текст свёрнут, показать
     
  • 15.55, timur.davletshin (ok), 20:12, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Согласен, руководство администратора UNIX начала 2000 года не потеряло актуально... текст свёрнут, показать
     
  • 15.64, Crazy Alex (ok), 01:43, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Угу Ничего не изменилось HDR нет, панорамы тоже не возникли, всякие режимы пол... текст свёрнут, показать
     
     
  • 16.67, пох (?), 12:06, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    если тебе это все нужно - в этом случае присоединяюсь к совету Тимура - не мучай... текст свёрнут, показать
     
  • 3.12, timur.davletshin (ok), 11:24, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Попробуй как-нибудь на досуге в дождливый день сделать нижеприведённое и побенчмаркать до этого и после (сохранить в файл типа vacuum.sh, дать права доступа +х и ./vacuum.sh КАТАЛОГ_С_DB)

    #!/bin/bash

    find "$1" -type f -print0|while read -d $'\0' fname; do
    type='file -b "$fname"'
    case "$type" in
    SQLite*)
    echo "$fname"
    sqlite3 "$fname" "VACUUM;" || exit $?
    ;;
    esac
    done

     
  • 2.3, Аноним (2), 10:50, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Ну и если вы применяете SQLite3 для каких-то таких задач, в которых фрагментация начинает иметь серьёзное влияние - вы однозначно что-то делаете не то и не так.
     
     
  • 3.4, timur.davletshin (ok), 11:04, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Так это же функция БД, а простого разработчика, который просто её использует. Вот к примеру darktable хранит миниатюры (не знаю, кому эта светлая идея пришла) и настройки из всех sidecar файлов в sqlite базе данных. В моём случае это DB около 2 Gb, вроде бы и немного, но стоит сделать реэкспорт больше 1000 фоточек и лаги даже на SDD становятся заметными, предполагаю, что на HDD вообще кисло.
     
     
  • 4.5, timur.davletshin (ok), 11:05, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    <<не>> простого разработчика
     
  • 4.9, Аноним (9), 11:16, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > Так это же функция БД, а простого разработчика

    - Моя Ока не справляется с перевозкой 60 тонн угля.
    - Что-то делаешь не так.
    - Так это же функция транспортного средства, а не простого водителя.

     
     
  • 5.10, timur.davletshin (ok), 11:20, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Так это же функция БД, а простого разработчика
    > - Моя Ока не справляется с перевозкой 60 тонн угля.
    > - Что-то делаешь не так.
    > - Так это же функция транспортного средства, а не простого водителя.

    Дельное замечание, адресуй его разработчикам приложений, вроде Firefox и Chrome. Это для начала, т.к. те ещё относительно по-божески его используют.

     
     
  • 6.13, пох (?), 11:24, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    у меня нет никаких проблем с файрфоксом и хромым, вызванных sqlite - что я делаю не так?

     
     
  • 7.18, timur.davletshin (ok), 11:34, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если бы проблемы не было, то разработчики FF не запилили бы аналогичную функцию в about:support :)

    Это ты просто об этом не знаешь или у тебя хранение истории в браузере ограничено несколькими месяцами. Если сомневаешься, то можешь загуглить "firefox sqlite slow" там тебе и про замедленный автокомплит расскажут и про убермедленную чистку истории.

     
     
  • 8.24, пох (?), 12:24, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    функция называется integrity check , что как бы намекает нам Initial databas... текст свёрнут, показать
     
     
  • 9.27, timur.davletshin (ok), 12:33, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Как я и сказал, ты или урезал срок хранения истории или не пользуешься им вовсе ... текст свёрнут, показать
     
  • 8.34, НяшМяш (ok), 15:05, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если бы проблема была, то разработчики FF запилили бы эту функцию примерно повер... текст свёрнут, показать
     
     
  • 9.35, timur.davletshin (ok), 15:21, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Озвучите причины Ну просто для нас, для недалёких и сирых мещан в назидание ... текст свёрнут, показать
     
  • 2.11, пох (?), 11:24, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    не переживай, innodb тоже тормозит, а про postgres и говорить не приходится (он еще и растет как на дрожжах при таком использовании).

    и лечится точно так же.

    причем дело не в фрагментации (не просто в фрагментации), на самом деле.

     
     
  • 3.14, timur.davletshin (ok), 11:25, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Да, я в курсе, нет в жизни счастья.
     
  • 2.15, MBG (?), 11:26, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Давно бредите вслух? Пора к доктору. По теме: покажите воспроизводимый тест, тогда обсудим. В принципе, можно добиться деградации производительности любой файловой системы или базы данных, если постараться, но проблема, как правило, решается чтением документации.
     
     
  • 3.19, timur.davletshin (ok), 11:41, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Давно бредите вслух? Пора к доктору. По теме: покажите воспроизводимый тест, тогда
    > обсудим. В принципе, можно добиться деградации производительности любой файловой системы
    > или базы данных, если постараться, но проблема, как правило, решается чтением
    > документации.

    Мне тебя учить цепляться утилитой sqlite3 к локальному *.sqlite файлу учить? Берёшь рабочий places.sqlite и делаешь 1000 произвольный SELECT'ов c index'ами, без них, по строкам и делаешь после VACUUM. Ну и размер файла не забудь замерить.

     
     
  • 4.29, Аноним (2), 14:11, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну и получаешь 0.02 сек вместо 0.01 сек. Да, аж на целых 100% производительность выросла, только вот кому оно интересно.
     
     
  • 5.30, Аноним (2), 14:11, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    0.01 вместо 0.02, конечно же.
     
  • 5.33, timur.davletshin (ok), 14:55, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Проходи мимо, оптимизации не для тебя, да и кремневый нож острее железного.
     
  • 4.65, MBG (?), 08:11, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    У меня под рукой уйма SQLite баз размерами в десятки гигабайт и более - и все с ними отлично (реалтайм данные трафика с полмиллиона автомобилей или около того, порядка 10Гб данных ежечасно). Прежде чем пытаться меня учить, погугли мои патчи для оптимизации FTS в SQLite (сейчас сжатие индексов в апстриме), баг-репорты о некоторых проблемах на продакшен базах размером 5GB+ и проч. Так где тесты-то для заявленных проблем в SQLite?
     
     
  • 5.66, timur.davletshin (ok), 09:21, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А... т.е. БД в 2 гигов не является уже Окой, везущей несколько тонн? Гуглить не буду, охотно верю заявлениям собеседника. Если вы всё умеете, то для вас не составит труда взять *.sqlite размером побольше, сдампить всё, потом восстановить и после побенчмаркать обе БД. Попробуйте, я гарантирую, что много нового узнаете для себя, с разработчиками всегда так. С нетерпением жду объяснений.
     
     
  • 6.98, Аноним (98), 17:50, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Попробуйте, я гарантирую, что много нового узнаете для себя

    Ник MBG лет 10 уже наверное занимается sqlite, я думаю он в курсе :-)

     
  • 2.77, Кузя (?), 17:34, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ключевая характеристика это СУБД в самом её названии -- Lite. Она не рассчитана на сколь-либо серьёзную нагрузку, а просто представляет удобное хранилище с широко знакомой многим семантикой.
    Не очень понимаю, как необходимость реиндексации, типичная для практически всех актуальных сейчас РСУБД, может затруднять обслуживание? Это как необходимость дышать воздухом затрудняет подводное плавание человека.
     

  • 1.7, Аноним (7), 11:09, 16/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Вы все тут такие специалисты, а я вот сначала подумал, что решили добавить в базу данных графический сервер с поддержкой окон.
    Точнее это было первой шальной мыслью.
    Бред? Бред.
    (Сообщение сформулировано согласно политике открытых мыслей)
     
     
  • 2.8, Аноним (7), 11:14, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В движок конечно, но это и без уточнений понятно.
     

  • 1.22, timur.davletshin (ok), 11:59, 16/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Ы-ы-ы... ладно, здравой критики тут не понимают, поэтому ограничимся рандомным tips'ом на заданную тему.

    Делаем совместную базу данных NSS (сертификаты и ключи) для Firefox и Evolution. Исходим из того, что у вас стабильные версии FF и не самая древняя libnss.

    Делаем mkdir -p ~/.pki/nssdb && chmod 700 ~/.pki
    Заходим в каталог профиля своего FF и делаем перемещаем cert9.db и key4.db в ~/.pki/nssdb
    Далее из каталога профиля запускаем ln -s ~/.pki/nssdb/cert9.db . && ln -s ~/.pki/nssdb/key4.db .

    Вуа-ля — у вас общая БД, можно сделать аналогичное и с Thunderbird. При желании можно замержить соответствующие файлы из двух прог при помощи certutil.

     
     
  • 2.31, Аноним (2), 14:13, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Потом один из них внезапно оказывается статически слинкованным с другой версией либы, и далее совет превращается в подобие вакууминга полуторакилобайтной базы sqlite3, только с более жёсткими последствиями.
     
     
  • 3.32, timur.davletshin (ok), 14:52, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Почитайт для начала, почему циферка на единичку у этих файлов выросла и потом будешь "петь" про более жёсткие последствия.
     
  • 2.81, Кузя (?), 17:41, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем? По-моему, вы не по назначению используете инструмент.
     
     
  • 3.83, timur.davletshin (ok), 17:51, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ты о чём? О совместной базе для сертификатов вместо двух или трёх (LO тоже цепляет сертификаты для подписи документов)?
     
     
  • 4.86, Кузя (?), 18:01, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да. Если нужно что-то совместное, то это не про SQLite. Вот и всё.
     
     
  • 5.87, timur.davletshin (ok), 18:04, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это официальный способ его использовать, загугли NSS Shared DB.
     
     
  • 6.88, Кузя (?), 18:22, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Может и официальный, но толку-то.
     
     
  • 7.89, timur.davletshin (ok), 18:25, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно, ты просто не пользуешься сертификатами :)
     
     
  • 8.90, Кузя (?), 18:34, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Не, не пользуюсь Но лайтом пользуюсь давно Настолько, чтобы понять простую ист... текст свёрнут, показать
     
     
  • 9.91, timur.davletshin (ok), 18:38, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А теперь расскажи о своём мнении мозилловцам А то людям надо же как-то узнать о... текст свёрнут, показать
     
     
  • 10.92, Кузя (?), 19:00, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Мозиловцы, не пользуйтесь лайтом так, как вы им пользуетесь, не смущайте людей, ... текст свёрнут, показать
     
     
  • 11.93, timur.davletshin (ok), 19:04, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А теперь к разрабам LO и Gnome ... текст свёрнут, показать
     
     
  • 12.94, Кузя (?), 19:25, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Лайт это только хранилка Что вы над ней накрутите -- ваше творчество Лисонутые... текст свёрнут, показать
     
     
  • 13.95, timur.davletshin (ok), 19:40, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Так а что не так, я просто не понял Или sqlite не поддерживает с каких-то пор у... текст свёрнут, показать
     

  • 1.37, пох (?), 16:05, 16/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    так, ну ладно, а по теме - кто-нибудь может показать реальный пример применения 'OVER' ?

     
     
  • 2.57, Аноним (57), 20:28, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Можешь открыть доку в postgres по window functions и посмотреть.
     
     
  • 3.60, пох (?), 21:36, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    я спрашивал "реальный пример" - где именно в жизни на реальных задачах оно у вас работает.
     
     
  • 4.68, Envek (ok), 21:28, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Обычно нужно редко, для генерации всяких аналитических отчётов или для миграции данных, когда именно, что хочется взять и посчитать что-то «эдакое» одним запросом, потому что тащить в приложение и считать в памяти долго и муторно.

    Штука для понимания сложная, но когда овладеете этой отвёрткой, то охота забивать шурупы молотком отпадёт сама собой.

    Хорошая статья с примерами использования: https://habr.com/post/268983/
    Мой собственный очерк с примером миграции данных (очень меня оконные функции впечатлили): http://envek.name/ru/blog/2015/04/28/sql-window-functions
    И целый интерактивный сайт-тренажёр оконных функций: https://www.windowfunctions.com/

    P.S> Очень-очень рад тому, что поддержка оконных функций завезли в SQLite

     
     
  • 5.74, пох (?), 11:12, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    спасибо огромное, а то когда на самом деле нужно - главное, в принципе сообразить что это шуруп, а не бракованный гвоздь - понимания чего "документация postgresql" по пользованию отверткой без живых примеров ни разу не даст.

     
  • 5.80, Кузя (?), 17:40, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Что там сложного-то?
     
  • 5.84, Кузя (?), 17:53, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Как раз таки нужно очень часто. Но это, да, синтаксическое упрощение, потому что и "обычными средствами" подобного результата можно достичь, но получится очень многословно.
     
  • 2.78, Кузя (?), 17:39, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    На любых агрегатных функциях. Без необходимости агрегации через group by. Очень удобно. На функциях ранжирования. На всяких набегающих значениях (сумма, счётчик по какой-нибудь категории).
     
  • 2.82, Кузя (?), 17:50, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну например, есть у вас, скажем, система регистрации событий. Типичная "строка" будет содержать дату/время события, категорию событий и текст сообщения события. И вам нужно найти по каждой категории строки с самыми старыми событиями. Можно сделать традиционным group by, а потом join, а можно сразу залепить окно по категории события и выбрать те строки, для которых значение самой старой даты в окне совпадёт со значением даты в строке события.
     

  • 1.58, Аноним (58), 21:16, 16/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > При переименовании таблиц через "ALTER TABLE" реализовано автоматическое обновление всех ссылок на новое имя в триггерах и представлениях;

    Отлично! Ещё бы для столбцов того же. Очень экономит время при разработке схемы БД.

     
     
  • 2.61, пох (?), 21:39, 16/09/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    вы ЭТО называете разработкой? "мы тут уже насоздавали сложных таблиц и отношений (раз понадобились уже и триггеры), залили пару гигабайт данных (иначе rm *sqlite решает проблему) - а теперь давайте пяток переименуем туда-сюда, и столбцы подвигаем, до кучи".

    где это такие разработчики, можно уточнить?

     
     
  • 3.70, Аноним (70), 03:10, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Когда схему впервые проектируешь, удобнее делать это сразу в sqlite, а не на бумаге. Желая изменить имя чего-либо, приходится менять его везде вручную.
    О базах с реальными данными речи не идёт (впрочем, как и с кучами тестовых).
     
     
  • 4.75, нах (?), 10:59, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    странные у вас, право, идеи.
    (sqlite шелл и tab-completion-то нормально научился меньше года назад, и по сей день, мягко говоря, является скорее средством восстановления или отладки, а не удобным инструментом работы с базой)

    я вот проектирую не на бумаге, потому что ее неудобно потом скармливать тому же sqlite binary, а просто в текстовом редакторе - где хотя бы текстовая схема перед глазами, и ее не надо добывать противоестественным путем в форматировании для терминала. он же потом отправляется и в vcs.

    какой смысл запихивать ее в бинарный формат, если данных для  нее пока еще все равно нет, и кода пока тоже нет - не понимаю.

    и пока схема лежит в файле текстом - есть куда более простые и наглядные способы попереименовать в ней любые детали, нежели надеяться на еще толком недописанную автоматику внутри sqlite (на бумаге, заметьте, сильно неудобнее ;-)

    А вот когда база уже на сотенку гигабайт, и внезапно выяснилось что 'термин "всякая фигня" не вполне точно отражает весь спектр товаров и услуг, предлагаемых нашей компанией' и надо в небольшое окно простоя поменять в ней "немножечко" структуру, желательно не перестраивая все индексы и уж тем более не делая store/load - вот тут alter table альтернативы и правда нет. То есть фича безусловно полезная, но для разработки ее применять ну очень странно.

     

  • 1.69, Аноним (69), 21:57, 17/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Когда уже будет sqlite в MySQL реализован как хранилище? Было бы удобно использовать по сети и несколькими пользователями. Может уже кто-то сделал?
     
     
  • 2.76, нах (?), 11:05, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    для посети и несколькимпользователям давным-давно выдуман sqlproxy, если вы так и не осилили серверный middleware, и каждый пользователь у вас по прежнему лазит напрямую в базу (привет, жаббикс).

    а удобно будет, когда кто-нибудь сумеет совместить libsqlite3 с каким-то другим хранилищем, поскольку болячки локинга как раз в нем. (ничего не мешает сохранить его файловым, унеся локинг и journal management в пространство systemV, кроме, конечно же, интересов мурзилы, адоба и, возможно, блумберга)

     
     
  • 3.85, Кузя (?), 17:57, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ё-маё, зачем? SQLite нужен исключительно как простая однопользовательская интегрируемая файловая хранилка, но использующая SQL. Всё. Больше она ни для чего не нужна, потому для прочего полно куда более адекватных СУБД.
     
     
  • 4.96, пох (?), 19:49, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ё-маё, зачем? SQLite нужен исключительно как простая однопользовательская интегрируемая
    > файловая хранилка, но использующая SQL.
    > Всё. Больше она ни для чего не нужна, потому для прочего полно куда более адекватных СУБД.

    куда более неадекватных, в этом и дело. Давно вы на ora-0006 не напарывались, погляжу?

    у sqlite в общем-то сейчас есть почти все, что есть у этих неадекватных, кроме разьве что навороченного plsql, который вполне можно оставить орацлу. А простые хранилки как-то до наших дней не дожили, кто еще помнит raima?
    А никаких чудес у тех давно уже нет - все те же файлики все в той же файловой системе (ибо block devices тоже уже нигде нормальных нет), где чудо? - не вижу, уже очки два раза протирал. Авторизацию просохатили (в смысле - надежную, которую не требуется прикрывать от внешнего мира салфеточкой) даже у кого была, вся "многопользовательскость" у них только в том, что разные тредики кое-как умеют в синхронизацию, не требующую задействовать совершенно неэффективные posix locks на уровне фс. Ну так в posix есть не только fs локи, и "многопользовательскость" вполне реализуема и межпроцессная. tcp и unix sockets - не нужны, авторы "адекватных" все равно работают с ними омерзительно неэффективно, оставьте сетевые задачи прокси.

    но вот тут да, ньюанс - под виндой работать не будет. А ентого мурзила не поймет-с.

     
     
  • 5.99, Мудила (?), 14:23, 22/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это из разряда, что Люксембург -- прекрасное государство, в нём есть всё. Кроме жителей и территории.
    На 0006Х никогда не напарывался. Это не проблема оракла, а проблема проектирования схемы. Если всё спроектировано хотя бы с минимальным пониманием темы, то "дедлока" в оракле вы не увидите никогда.
     
  • 2.79, Кузя (?), 17:39, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем? Дельфин вообще не нужен.
     
     
  • 3.97, пох (?), 19:52, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем? Дельфин вообще не нужен.

    а как же мы будем данные с пехепе фронтенда снимать? А, ну да, есть же еще какая-то pinba-mq поделка... или недоделка?

    а так да... sorting tmp table, 20 лет все те же грабли.

     

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



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

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