Как стать автором
Обновить
1.6

SQLite *

Компактная встраиваемая реляционная база данных

Сначала показывать
Порог рейтинга
Уровень сложности

Оптимизация работы с SQLite под iOS

Время на прочтение4 мин
Количество просмотров13K


“Think of SQLite not as a replacement for Oracle but as a replacement for fopen()”
— About SQLite


А также, скорее всего, под Android, BlackBerry и в сэнд-боксе браузеров для веб-приложений, но я не проверял.

Почему может быть нужно работать с SQLite напрямую?

Любой опытный iOS девелопер тут же упрекнёт меня за использование SQLite напрямую (вернее не напрямую, а через FmDb, но это почти всё равно что напрямую). Он скажет, что нужно использовать CoreData, т.к. оно много всяких ништяков делает автоматически, типа Undo и Redo. И в нём можно рисовать красивые схемки, которые потом приятно показывать заказчику. А в андроиде, например, есть OrmLite.

И я соглашусь – но до той поры, пока у вас база не перевалила, скажем, за 10 таблиц по 500,000 записей в каждой. А если таблиц 52, и есть особо жирные таблицы по миллиону и больше? И базу нужно синхронизировать с сервером через третий формат, к тому же заказчику критично, будет синхронизация длиться час или пять? Если вы встречали задачи такого объёма, добро пожаловать под кат! Если не встречали – то тоже, ведь никто не застрахован от проектов с большими данными, пускай даже таких мобильных и меньше.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии34

Интеграция алгоритма стемминга русских слов в fts3 SQLite

Время на прочтение3 мин
Количество просмотров5.8K
В данной статье я хочу поделиться опытом интеграции расширения для стемминга в код SQLite. Все действия выполнялись в ОС Ubuntu 11.10.

Проблема


В fts3 SQLite есть простой стеммер, реализующий алгоритм стемминга Портера, но для русских слов реализации нет. Т.е. MATCH по слову 'гостиницы' не найдёт записи, содержащие слово 'гостиница' и т.д.

Подготовка к компиляции


Что понадобится

  • исходники sqlite3 с репозитория;
  • наш стеммер на языке C (см. далее);
  • опционально библиотека readline (libreadline), если нужна история вводимых команд для консольного клиента.

Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии2

Qt и SQLite и вообще, программирование БД в Qt

Время на прочтение9 мин
Количество просмотров156K
Добрый день.

Ниже пойдет речь о том, как использовать SQLite в Qt. Автор постарался как можно подробнее рассматривать программирование баз данных в Qt.

Об этих двух замечательных продуктах можно прочитать следуя приведенным выше ссылкам, а мы будем конкретно рассматривать программирование БД в Qt, в частности, на примере SQLite. Скажу только, что SQLite несколько отличается от «обычных» баз данных, таких как MySQL тем, что «не обладает» клиент-серверной архитектурой. То есть движок БД не является отдельно работающим процессом, с которым взаимодействует программа. SQLite представляет собой библиотеку, с которой компонуется ваша программа и, таким образом, движок становится составной частью программы. То есть представьте вы решили сохранять все данные, с которыми «сталкивается» ваша программа в обычный файл. В один прекрасный день вы решаете сохранять данные в файле, но организовав это с «реляционной» точки зрения. После этого вы поняли, что новая структура файла должна «распознаваться особым образом». С этого, как минимум, следует, что вам нужно предоставить некоторый API, обеспечивающий связь между этим файлом данных с приложением. В общем, следуя логической постановке приведенного сценария у вас рождается система БД, не требующая сервера БД и собственно, клиента. Получается достаточно быстрая по сравнению с «клиент-серверной» БД система, и сама программа упрощается.
Почему я рассматриваю именно SQLite?
Всего голосов 48: ↑43 и ↓5+38
Комментарии57

Как подружить SQLite андроида с языком, отличным от английского

Время на прочтение4 мин
Количество просмотров16K

Здравствуй, дорогой читатель!
В этой статье я хочу затронуть проблему хранения кириллических данных в SQLite, попробовать разобраться с Android NDK, и вообще зажить прекрасной жизнью! Однако, с этого момента, считаю важными первые два пункта. О них и поговорим.

Известная проблема SQLite состоит в том, что он не любит никаких символов, кроме латинских, поэтому выполняется такое [1]:
SELECT "ы" LIKE "Ы";
0
SELECT "s" LIKE "S";
1


Такая проблема актуальна для наших широт, и может быть решена пользовательскими функциями.
Но Android не поддерживает функций, поэтому создаются костыли.

Давайте попытаемся обойти костыли и расширить наши возможности
Всего голосов 40: ↑34 и ↓6+28
Комментарии37

Истории

node.js и SQLite 3 — теперь друзья

Время на прочтение1 мин
Количество просмотров14K
node.js — один из лучших каркасов для создания серверов на основе событийных машин, основанный на движке JavaScript V8, теперь получил по-настоящему асинхронную, неблокирующую привязку к базам данным SQLite 3.

Домашняя страница проекта.

Большое спасибо Orlando Vazquez и Ryan Dahl за выполненную работу.
Всего голосов 30: ↑28 и ↓2+26
Комментарии28

Новая версия C#-SQLite

Время на прочтение1 мин
Количество просмотров8.6K
C#-SQLite — это независимый от SQLite.org opensource-проект, который представляет собой полный порт SQLite на управляемый код C#. В итоге, C#-SQLite работая в .NET-окружении может встраиваться в приложения Silverlight и применяться в браузерах на стороне клиента.

Новая версия C#-SQLite в очередной раз приносит улучшения производительности.

image

Для управляемого кода совсем неплохо. В одном тесте оптимизация позволила даже превзойти SQLite в производительности. На странице измерения производительности проекта можно скачать тест и ознакомиться с прогрессом в разработке проекта: прогресс достигнутый в последних сборках, по сравнению с первой версией, очень радует.
Всего голосов 17: ↑11 и ↓6+5
Комментарии7

SQLite и полноценный UNICODE

Время на прочтение2 мин
Количество просмотров31K
Наверно многим известна embed база данных SQLite. SQLite полностью поддерживает кодировки UTF-8 и UTF-16. Но есть один нюанс, для строковых и текстовых полей, символы которых выходят за пределы ASCII таблицы, не работает нечувствительный к регистру LIKE и ORDER BY.
Например:
sqlite> SELECT "ы" LIKE "Ы";
0
в то время как
sqlite> SELECT "s" LIKE "S";
1
Давайте разберемся как же это исправить.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии22

Использование SQLite в .NET приложениях

Время на прочтение7 мин
Количество просмотров160K


В некоторых проектах достаточно часто возникает необходимость в хранении данных, объем которых уже нельзя назвать маленьким, но в тоже время использовать какую-либо СУБД слишком накладно из-за сложности развертывания приложения. И тут на помощь приходит такая прекрасная вещь как SQLite – компактная встраиваемая база данных.

Для тех, кто пишет с использованием платформы .NET приятным моментом станет наличие
Читать далее...
Всего голосов 61: ↑52 и ↓9+43
Комментарии48

Тормозной SQLite? Совсем нет!

Время на прочтение2 мин
Количество просмотров30K
Как-то заинтересовавшись SQLite я решил проверить, а не будет ли оно быстрее MySQL, или хотя бы равным по скорости.
Я исходил из того, что SQLite скорее всего будет удобна для мелких таблиц, типа простых счетчиков посещений.
Поэтому провел тесты следующим способом: я пять раз мерял время по 100 циклов обновления записи в базе и пять раз по 100 чтения.
Код тут.
Читать дальше →
Всего голосов 55: ↑47 и ↓8+39
Комментарии74
12 ...
9