LINUX.ORG.RU
ФорумTalks

SQLite, давно хотел спросить

 


0

3

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


кто ненавидит? Не знаю таких.

dikiy ★★☆☆☆
()

Это по треду про почтовый клиент? Пару неадекватов в треде всегда будут, их не может не быть.

goingUp ★★★★★
()
Ответ на: комментарий от qrck

Ненавидят те, кто считает что SQL - это первый шаг к ПХП

бред какой-то.

drBatty ★★
()

За что его многие искренне ненавидят?

наверное за неправильное использование. ещё за тормоза, за загрузку диска, и т.д. В принципе, ИМХО тот же ФФ работал-бы получше и побыстрее на MySQL, вот только 95% юзеров не поймут смысла разворачивания сервера СУБД на своём компьютере. И наверное они правы.

drBatty ★★
()
Ответ на: комментарий от moscwich

как, например, неправильно используют?

ну у тебя и вопросы…

ты думаешь, зачем придумали столько СУБД, если есть простая встраиваемая sqlite?

drBatty ★★
()
Ответ на: комментарий от drBatty

mysql может работать как embedded, разворвачивать совсем не обязательно. Но вот я совсем не уверен что это будет быстрее sqlite

thesame ★★★★
()
Ответ на: комментарий от thesame

mysql может работать как embedded, разворвачивать совсем не обязательно. Но вот я совсем не уверен что это будет быстрее sqlite

ИМХО ещё медленнее.

drBatty ★★
()

sqlite просто божественная штуковина. Ненавидеть её может только очень недалекий человек.

Legioner ★★★★★
()

незнаю таких, покажи пальцем. Я лично c большой симпатией отношусь к sqlite

Harald ★★★★★
()
Ответ на: комментарий от schizoid

bdb - это Беркли? Чем она лучше?

Да, хотя бы тем, что не загибается из-за блокировок при множественном доступе к записям. SQLite хорош, когда у тебя есть один writer и один reader. bdb хорош даже когда у тебя есть множество writers/readers (даже неважно в каком виде - процессы или потоки в одном процессе). Это все в контексте одновременного доступа к данным. Минус bdb это оверхед в усложнении работы с данными, там где пишется селект в одну строчку придется написать изрядное количество кода.

Вобщем, я хотел сказать, что с bdb дается более гибкий контроль управления и в тоже время масштабируемый. SQLite, напротив, прячет все управление в себя и предоставляет упрощенный интерфейс. ИМХО, если сделать один раз более менее универсальный механизм для работы с bdb (библиотеку), то о SQLite можно забыть раз и навсегда.

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 3)
Ответ на: комментарий от Legioner

sqlite просто божественная штуковина. Ненавидеть её может только очень недалекий человек.

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

drBatty ★★
()
Ответ на: комментарий от kto_tama

как можно вообще ненавидеть какую-то базу данных ?

также, как считать какую-то СУБД «божественной». Фанетеги.

drBatty ★★
()
Ответ на: комментарий от gh0stwizard

Окей, спасибо за пояснение, возьму на bdb заметку.

schizoid ★★★
()
Ответ на: комментарий от gh0stwizard

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

за то твоя СУБД даже столбцов данных толком не умеет. На кой хрен нужен калькулятор, который не умеет считать числа из цифр? Да пусть он хоть на ноль делит, и бесконечный цикл за 3 сек прогоняет - сфера его применения всё равно будет близка к нулю. Ибо калькулятор нужен для подсчёта выражений из чисел, а для 99.999% людей, числа состоят из цифр. Как СУБД состоит из таблиц, таблицы из строчек, а строчки из столбцов.

ИМХО, если сделать один раз более менее универсальный механизм для работы с bdb (библиотеку), то о SQLite можно забыть раз и навсегда.

можно и на sed написать dc. Толку-то?

drBatty ★★
()
Ответ на: комментарий от drBatty

за то твоя СУБД даже столбцов данных толком не умеет.

Да, я не спорю. Я же сказал, чтобы организовать таблицу через bdb нужны определенные усилия. То, что многие этого не осиливают не значит, что sqlite это пик совершенной архитектуры. Более того, основные архитектурные изъяны-особенности из sqlite никак не выкинуть, а в bdb основной изъян - лень.

можно и на sed написать dc. Толку-то?

Толк в том, что кто-то хочет плевать в потолок и гребсти деньги лопатой, а на деле ни на что не способны. Вот как раз для таких и сделан sqlite. Ты вообще читал мой пост в чем наезд на sqlite ? Видимо нет, услышал звон да не знаешь где он. Адьос.

gh0stwizard ★★★★★
()
Ответ на: комментарий от gh0stwizard

Да, я не спорю. Я же сказал, чтобы организовать таблицу через bdb нужны определенные усилия. То, что многие этого не осиливают не значит, что sqlite это пик совершенной архитектуры. Более того, основные архитектурные изъяны-особенности из sqlite никак не выкинуть, а в bdb основной изъян - лень.

в целом согласен, но единственное - я бы не сказал, что нежелание писать тонну кода, там, где это не нужно - «лень». Может мне и не нужны 100500 транзакций в сек одновременно? Может мне надо в БД хранить скажем уже просмотренные web-странички юзера(я браузер делаю, к примеру), юзер у меня один, и ходит он медленно. Нафейхуя тут bdb?

Толк в том, что кто-то хочет плевать в потолок и гребсти деньги лопатой, а на деле ни на что не способны. Вот как раз для таких и сделан sqlite. Ты вообще читал мой пост в чем наезд на sqlite ?

ну я тебя понял так, что для твоих задач sqlite слишком туп, примитивен, и ты его не можешь заточить под свои нужды (потому-что он вообще не точится). А вот bdb - можешь. И что тебя расстраивают те, кто ленится что-то затачивать, а тупо юзают sqlite, а если что - бегут за памятью в магазин ☺

drBatty ★★
()

За что его многие искренне ненавидят?

Лично я - за то, что в нем нет типов данных (в любую колонку таблицы можно написать что угодно).

tailgunner ★★★★★
()
Ответ на: комментарий от ZuBB

Это должно быть частью engine.

Справеливости ради нужно заметить что хак с проверкой типов гуглится за 1мин

Ссылку. Всё, что я видел, было либо убогим, либо нерабочим.

tailgunner ★★★★★
()
Ответ на: комментарий от gh0stwizard

там где пишется селект в одну строчку придется написать изрядное количество кода.

А что, никакого ORM с его поддержкой нет что ли до сих пор?

firestarter ★★★☆
()
Ответ на: комментарий от tailgunner

Теперь найди слово «реляционная» в описании BDB.

И что, это мешает представлять данные из bdb в виде объектов на языке программирования?

firestarter ★★★☆
()
Ответ на: комментарий от firestarter

Если сравнивать с конструктором, то получим следующее:

1. bdb - винтики и гаечки

2. sqlite - машинка, собранная из винтиков и гаек

3. ORM - краситель для машинки

Я говорил, чтобы сделать себе «ядро/двигатель», а колеса и двери прикручивать по мере необходимости в зависимости от задачи. Если задач много, как у меня, это удобный выход. Когда задача одна (читай пишешь одно приложение пять лет :), то можно прикрутить все что угодно, даже sqlite, наравне с bdb - на это есть время.

gh0stwizard ★★★★★
()

Кто его ненавидит? Неплохая штука...

Saloed
()
Ответ на: комментарий от firestarter

Теперь найди слово «реляционная» в описании BDB.

И что, это мешает

То, что BDB не является реляционной, мешает написать Object-Relational Mapper, да.

tailgunner ★★★★★
()

Это новый флешмоб «за что ненавидят $toolkit_name»?

vurdalak ★★★★★
()
Ответ на: комментарий от ZuBB

Note that a declared type of «FLOATING POINT» would give INTEGER affinity, not REAL affinity, due to the «INT» at the end of «POINT»

Ну как можно не любить такую няшку...

CREATE TABLE T (

N INTEGER CHECK(TYPEOF(N) = 'integer'),

Str TEXT CHECK(TYPEOF(Str) = 'text'),

Dt DATETIME CHECK(JULIANDAY(Dt) IS NOT NULL)

);

Тоже прелестно.

tailgunner ★★★★★
()
Ответ на: комментарий от kto_tama

как можно вообще ненавидеть какую-то базу данных ?

Легко: я, к примеру, ненавижу обратный гиперболический косинус

frame ★★★
()
Ответ на: комментарий от drBatty

95% юзеров

И наверное они правы.

Ого! После заявлений вроде «95% населения - идиот» такое... Ты прогрессируешь!

cipher ★★★★★
()
Ответ на: комментарий от ZuBB

Кстати

sqlite> CREATE TABLE t1(i CONSTRAINT "INTEGER" CHECK(TYPEOF(i) = "integer"));
sqlite> INSERT INTO t1 VALUES("xx");
Error: constraint failed

Заметь такое милое отсуствие имени CONSTRAINT'а. Однозначно, sqlite - няшка.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Заметь такое милое отсуствие имени CONSTRAINT'а.

SQLite version 3.7.16 2013-03-18 11:39:23
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> CREATE TABLE t1(i CONSTRAINT "INTEGER" CHECK(TYPEOF(i) = "integer"));
sqlite> INSERT INTO t1 VALUES("xx");
Error: constraint INTEGER failed
wota ★★
()
Ответ на: комментарий от tailgunner

То, что BDB не является реляционной, мешает написать Object-Relational Mapper, да.

Является ли реляционным XML? JSON? А ORM с ними прекрасно работает. Молчу уже про всякие MongoDB и прочие NoSQL.

«Relational» в «ORM» указывает на связь не сущностей БД в рамках РСУБД, а на связь объекта и его представления в БД. Меж собой объекты могут никак средствами СУБД не быть связаны.

KRoN73 ★★★★★
()
Ответ на: комментарий от frame

я, к примеру, ненавижу обратный гиперболический косинус

а косеканс?

drBatty ★★
()
Ответ на: комментарий от cipher

Ого! После заявлений вроде «95% населения - идиот» такое... Ты прогрессируешь!

на самом деле, заявление про 95% процентов намного глубже, чем ты думаешь. То, что ты так думаешь, является на самом деле рекурсивным доказательством того, что ты из 95%, и что заключение верное. Подумай об этом.

На самом деле, 95% людей полагают, что надо совершить какое-то усилие, что-бы о чём-то задуматься, ровно как для того, что-бы например поднять гирю. Именно по этой причине они и не делают этого усилия, и не задумываются. И именно по этой причине действуют и думают IRL как идиоты.

Все, кроме 5%. Однако эти 5% - это никакая не «илита», это те же самые 95%, только в рассматриваемом случае их что-то сбило с ног, и они были вынужденны «поднять гирю». Это не делает их лучше или хуже - в следующих 95% испытаний они вернутся к своему обычному состоянию.

drBatty ★★
()
Ответ на: комментарий от tailgunner

Но строка в поле INTEGER всё-таки ляжет, а доку я читаю ;)

да, и мне тоже не мешает это делать внимательно )

wota ★★
()
Ответ на: комментарий от drBatty

И именно по этой причине действуют и думают IRL как идиоты.

А некоторые так делают еще и на этом форуме.

Подумай об этом.

(с)

cipher ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.