SQLite vs MySQL: Выбор БД для ZennoPoster [+ Шаблон БД SQLite]

meriin

Client
Регистрация
30.01.2020
Сообщения
66
Благодарностей
69
Баллы
18
Всем привет!

На форуме регулярно возникают вопросы по хранению и обработке данных в шаблонах. Многие, новички и не только, продолжают использовать бесконечные списки и таблицы в ZennoPoster. Я их прекрасно понимаю — когда-то и мне работа с базами данных казалась чем-то для избранных.
Но, скажу однозначно: преодолев этот барьер, вы выйдете на новый уровень. Работа шаблонов станет стабильнее, а многие технические проблемы исчезнут сами собой.
Какую же БД выбрать? Давайте разберем двух главных кандидатов: SQLite и MySQL (и подобные серверные СУБД).

Ключевое отличие: Архитектура
  • SQLite — это файл-база. Вся БД — это один файл на диске (например, project.db). Не требует установки сервера. (Необходимо только подключить к шаблону библиотеку - System.Data.SQLite.dll).
  • MySQL, PostgreSQL — это клиент-серверные системы. База работает как отдельный сервис, к которому ZennoPoster подключается по сети.
Почему SQLite — идеальный старт для ZennoPoster
  • Простота и портативность. Скопировали файл .db рядом с шаблоном — и база готова. Перенести проект на другой ПК — просто скопируйте папку.
  • Нулевая администрация. Не нужно настраивать сервер, управлять пользователями или открывать порты.
  • Высокая скорость. Для записи прокси, обновления статусов аккаунтов или работы с куками SQLite очень быстр, так как все данные локальны.
  • Надежность. База строго соблюдает принципы ACID. Риск повреждения данных минимален.
Ограничение: SQLite лучше подходит для проектов с малым количеством одновременных потоков на запись. SQLite допускает множественное чтение, но только одну запись в один момент времени (последовательная запись).
Когда переходить на MySQL?
MySQL — решение для сложных и высоконагруженных проектов.

Выбирайте MySQL, если:

  • Шаблон работает в 10+ потоков. MySQL эффективно обрабатывает concurrent-операции записи и чтения.
  • Вы работаете в команде. Несколько шаблонов или пользователей должны собирать данные в одну базу.
  • Данные нужны другим сервисам. К вашей БД может подключаться не только ZennoPoster, но и ваш сайт или приложение.
  • Работаете с большими данными. Для проектов с десятками миллионов записей и сложными запросами.
Минус MySQL: требует установки, настройки сервера и менее портативен.
Итог: Что выбрать?
  • Начинайте с SQLite. Если вы новичок в БД и ваш проект работает на одном компьютере, вы получите 90% преимуществ с 10% усилий.
  • Переходите на MySQL, когда упретесь в ограничения. Когда шаблону потребуется масштабирование на десятки потоков или централизованное хранилище для нескольких ПК.
Ну и бонусом хочу представить шаблон для автоматизированного создания файла БД SQLite с необходимыми вам таблицами в ней и полностью готовой к использованию в вашем проекте. Шаблон имеет два режима работы. В первом режиме создаем файл БД (без таблиц).
  • Выбор режима работы (Создание БД).
  • Название Базы данных:
  • Директория для сохранения БД:
137798

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

  • Выбор режима работы (Создание таблицы в готовой БД).
  • Название Базы данных:
  • Путь к файлу БД:
  • Название таблицы:
  • Параметры таблицы (CSV формат):
137799

Как составить описание таблицы:
id,INTEGER,PRIMARY KEY AUTOINCREMENT
name,TEXT,NOT NULL
email,TEXT,UNIQUE
age,INTEGER
url,TEXT,NOT NULL
Одна строка = один столбец.
Разделитель: запятая.
Первое значение - название столбца (id, name, email, age, url)
Второе значение - типы данных
  • INTEGER - целые числа
  • TEXT - текст/строки
  • REAL - дробные числа
  • BLOB - бинарные данные
  • NUMERIC - числовые данные
  • BOOLEAN - логические значения
Третье значение - дополнительные параметры
  • PRIMARY KEY - первичный ключ
  • AUTOINCREMENT - автоинкремент (только для INTEGER)
  • NOT NULL - обязательное поле
  • UNIQUE - уникальные значения
  • DEFAULT значение - значение по умолчанию
  • CHECK(условие) - проверка условий

Прежде чем использовать шаблон, необходимо cкопировать файл
System.Data.SQLite.dll в папку ExternalAssemblies вашего ZennoPoster.
Файл System.Data.SQLite.dll лежит в архиве.
 

Вложения

Последнее редактирование:

seodamage

Client
Регистрация
08.09.2014
Сообщения
255
Благодарностей
85
Баллы
28

molotok

Client
Регистрация
17.04.2015
Сообщения
747
Благодарностей
373
Баллы
63
Почему бы стразу на PostgreSQL не переходить?
 

meriin

Client
Регистрация
30.01.2020
Сообщения
66
Благодарностей
69
Баллы
18
Почему бы стразу на PostgreSQL не переходить?
Считаю, что для новичка в БД, который только переходит с таблиц ZennoPoster, она создаст те же первоначальные сложности, что и MySQL, если не больше. Наверное начинать нужно с самого простого инструмента и по мере необходимости переходить к более сложным.
 

искра

Client
Регистрация
07.06.2014
Сообщения
290
Благодарностей
25
Баллы
28
Считаю, что для новичка в БД, который только переходит с таблиц ZennoPoster, она создаст те же первоначальные сложности, что и MySQL, если не больше. Наверное начинать нужно с самого простого инструмента и по мере необходимости переходить к более сложным.
я понимаю что раньше надо было из простого к сложному переходить а сейчас же при наличии ии можно разные инструменты юзать не понимая все нюансы
 

Чешир

Client
Регистрация
27.06.2014
Сообщения
1 715
Благодарностей
1 073
Баллы
113
Спасибо! Сам давно думал о БД
 
  • Спасибо
Реакции: meriin

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)