Параметри баз даних¶
Параметри Баз даних для digiKam можна змінити за шляхом .
Примітка
Вступні зауваження щодо внутрішнього сховища даних наведено у розділі Бази даних вступної глави цього підручника.
База даних SQLite¶
SQLite є реляційною системою керування базами даних, роботу якої забезпечує бібліотека, написана мовою програмування C. SQLite не можна безпосередньо порівнювати із клієнт-серверними рушіями баз даних SQL, зокрема MariaDB або PostgreSQL. Це швидше вбудований рушій для роботи з базами даних SQL, тобто ця бібліотека просто вбудовується до кінцевої програми. SQLite читає і записує дані безпосередньо до звичайних файлів на диску. Для сховищ даних на локальних пристроях із низькою конкурентністю запису та менш ніж терабайтом даних, SQLite є майже завжди кращим рішенням. SQLite — швидка і надійна база даних, яка не потребує налаштовування або супроводу. Вона усе спрощує. SQLite «просто працює».
Типово, у digiKam для зберігання важливих метаданих і мініатюр використовується SQLite. digiKam зберігає дані у чотирьох файлах SQLite:
База даних
Назва файла
Ядро
digikam4.dbМініатюри
thumbnails-digikam.dbПодібність
similarity.dbОбличчя
recognition.db
Щоб ваша програма працювала швидко та безпроблемно, вам слід періодично перевіряти та оптимізувати свої бази даних — виберіть пункт меню , а потім Виконати очищення бази даних. Додаткові відомості можна знайти у частині Очищення бази даних розділу «Інструменти обслуговування».
SQLite Browser — це високоякісний і простий у використанні візуальний інструмент для керування об’єктами бази даних, який ми наполегливо рекомендуємо. Для Ubuntu та похідних від цієї системи його можна встановити за допомогою команди sudo apt install sqlitebrowser. Потім ви можете перейти до каталогу, де зберігаються бази даних digiKam, щоб візуалізувати вміст бази даних.
Примітка
Щоб удосконалити швидкодію, зберігайте бази даних digiKam на найшвидшому носії (наприклад SSD або NVMe) із достатнім обсягом вільного місця. Це особливо важливо для бази даних мініатюр. Не варто використовувати для таких баз даних віддалені файлові системи, зокрема NFS. З міркувань забезпечення швидкодії та технічних причин, які пов’язано із особливостями SQLite, не можна використовувати для баз даних мережеве сховище.
Файли баз даних SQLite можна знайти у вашій теці «Збірки», яку ви додали до digiKam (Типово, якщо вами додається збірка «Картинки», файли баз даних зберігатимуться у теці ~/Картинки).
Сторінка налаштувань SQLite у digiKam¶
Режим WAL SQLite є дуже важливим. Рекомендуємо вам увімкнути його для великих баз даних для оптимізації передавання даних та збільшення швидкодії.
База даних MariaDB¶
MariaDB чи SQLite¶
Сервер MariaDB — відгалуження у розробці сервера MySQL, розвиток якого здійснює спільнота розробників. Розпочата основними розробниками із початкової команди розробників MySQL, MariaDB активно працює із зовнішніми розробниками з метою створення сервера SQL із найширшими можливостями, найліпшою стабільністю та найліпшими умовами ліцензування у індустрії.
MariaDB фактично замінює MySQL через декілька основних причин:
Розробка MariaDB є відкритішою та активнішою.
Більше найновіших можливостей.
Більше рушіїв зберігання даних.
Вища швидкодія.
Сумісність і простота у перенесенні даних.
Починаючи з digiKam 9.2.0, підтримку MySQL вилучено. Тепер у digiKam передбачено підтримку лише MariaDB як системи керування реляційною базою даних для користувачів, яким потрібне клієнт-серверне рішення бази даних.
У digiKam передбачено підтримку популярного рушія роботи із базами даних MariaDB. Звичайно ж, у вас може виникнути питання: «Навіщо переходити на MariaDB, якщо SQLite вже добре виконує усі завдання з керування даними?» Використання MariaDB як модуля роботи з базами даних digiKam має багато переваг, зокрема, якщо у збірці понад 100000 записів. При роботі з такими великими збірками у SQLite можуть бути проблеми з латентністю, які уповільнюють роботу програми.
Примітка
Якщо увімкнено WAL, SQLite можна без проблем користуватися для баз даних із понад 500000 записами, особливо, якщо користуватися для зберігання даних SSD або NVMe. Ця база даних може бути навіть швидшою і стабільнішою за MariaDB. Див. цю сторінку, щоб дізнатися технічні подробиці. Давні користувачі digiKam, у базах даних яких понад 1 мільйон записів, повідомляють про безпроблемну роботу з цими налаштуваннями.
Порада
Якщо ви користуєтеся раніше створеною за допомогою попередньої версії digiKam базою даних MySQL, ми наполегливо радимо перейти на MariaDB. Ви можете перенести дані на MariaDB за допомогою настанов цього підручника.
Використання MariaDB як модуля роботи з базами даних digiKam надасть вам змогу зберігати дані на локальному або віддаленому сервері. Вбудованим сервером MariaDB можна замінити локальне сховище SQLite, а віддаленим можна скористатися для зберігання даних на спільному комп’ютері у мережі. Ви зможете користуватися декількома екземплярами digiKam (наприклад на вашому ноутбуці та стаціонарному комп’ютері) для доступу і керування вашими збірками фотографій. Ви також зможете скористатися інструментами MariaDB для створення резервних копій та аналізу даних digiKam.
Щоб перейти з використання баз даних SQLite на використання баз даних MariaDB, виберіть пункт меню і перейдіть до розділу База даних. Виберіть відповідну базу даних зі спадного списку.
Вбудована MariaDB: за допомогою цього варіанта можна скористатися вбудованим сервером баз даних на вашій системі. Для встановлення з’єднань із базами даних digiKam використовуватиме сокет Unix.
Сервер MariaDB: цим варіантом можна скористатися, якщо ваші дані зберігаються на віддаленому сервері, а ви на іншому комп’ютері користуєтеся доступом до збірки зображень.
Вбудований сервер MariaDB¶
Робота digiKam значно уповільнюється, якщо ви користуєтеся великою збіркою зображень (яка складається з понад 500000 об’єктів), яка зберігається на жорсткому диску (HDD — не пристрої SSD або NVMe) у базі даних SQLite. Щоб усунути затримки і допомогти програмі працювати ефективніше, у digiKam передбачено можливість використання Вбудованої MariaDB. Якщо бути точним, це насправді не сервер із доступною клієнтам мережею. Це такий сервер, який працює лише, якщо працює програма.
Внутрішній сервер створює окрему базу даних, доступ до якої (лише протягом роботи програми) можна отримати за допомогою такої команди:
mariadb --socket=/home/[user_name]/.local/share/digikam/db_misc/mysql.socket digikam
Для роботи вбудований сервер використовує три виконуваних файли з MariaDB — mariadb_install_db, mariadbadmin і mariadbd. Налаштувати розташування цих файлів можна за допомогою діалогового вікна налаштувань. digiKam намагатиметься автоматично виявити розташування цих виконуваних файлів, якщо їх встановлено у системі.
Сторінка внутрішніх налаштувань MariaDB у digiKam¶
Віддалений сервер MariaDB¶
Звичайно ж, для використання digiKam з віддаленим MariaDB, вам потрібен доступу до сервера MariaDB. Встановити такий сервер доволі просто, якщо скористатися цим посиланням.
Наведеними нижче настановами можна скористатися, якщо у вас немає окремого облікового запису користувача для доступу до баз даних і базу даних digiKam вже налаштовано. Віддайте такі команди на сервері MariaDB (замінивши пароль на відповідний):
Примітка
Ви можете вибрати будь-яку назву бази даних. (У нашому прикладі «digikam».) Просто не забудьте правильно заповнити назви баз даних у полях основної бази даних та баз даних мініатюр, подібності і облич у діалоговому вікні, зразок якого наведено нижче.
CREATE USER ''@'%' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO ''@'%' IDENTIFIED BY 'password';
CREATE DATABASE digikam;
GRANT ALL PRIVILEGES ON digikam.* TO ''@'%';
FLUSH PRIVILEGES;
Примітка
Якщо у вас величезна збірка зображень, рекомендуємо вам запускати сервер MariaDB за допомогою такої команди: mariadb –max_allowed_packet = 128M
Порада
Якщо у вас виникають проблеми з сервером MariaDB у заснованих на Ubuntu системах Linux, скористайтеся додатковою командою у запиті MariaDB, щоб мати змогу створювати перемикачі MariaDB.
SET global log_bin_trust_function_creators=1;
Після цього у digiKam виберіть пункт меню і у розділі «База даних» виберіть сервер MariaDB у спадному списку.
Сторінка налаштувань віддаленого сервера MariaDB у digiKam¶
Введіть IP-адресу вашого сервера MariaDB до поля Назва вузла і вкажіть правильний номер порту у полі Порт вузла (типовим номером порту є 3306).
У полі Назва основної бази даних вкажіть назву першої бази даних, де зберігатимуться метадані фотографій.
Встановіть для поля Назва бази даних мініатюр значення назви другої бази даних, яку використано для збереження мініатюр зі стисканням за допомогою вейвлетів. Шлях для зберігання даних мініатюр може бути збережено локально для запобігання збільшенню об’єму обміну даними між сервером та комп’ютером, де запущено програму. Зберігання мініатюр на віддаленому комп’ютері може зменшити швидкодію програм і призвести до затримок у роботі з об’ємними збірками.
Встановіть у полі Назва бази даних подібності назву третьої бази даних, яка використовуватиметься для зберігання відбитків подібності, створених рушієм нечіткого пошуку.
У полі Назва бази даних облич вкажіть назву останньої бази даних, де зберігатимуться гістограми облич для розпізнавання облич.
Щоб встановити безпечне з’єднання із віддаленим сервером, вкажіть ваші параметри розпізнавання MariaDB за допомогою полів Користувач і Пароль.
Щоб перевірити, чи працює база даних належним чином, натисніть кнопку Перевірити з’єднання. Якщо все працює як слід, перемкніться до розділів збірок і додайте каталоги, які містять ваші фотографії. Натисніть кнопку Гаразд і зачекайте, доки digiKam заповнить бази даних даними фотографій. Заповнення може бути доволі тривалим, якщо у вас багато фотографій.
Забезпечити найкращі результати у використанні віддаленого сервера баз даних MariaDB допоможуть наші підказки і рекомендації.
Якщо мережа працює повільно, digiKam витрачатиме багато часу на обробку запитів, зокрема якщо у альбомі багато записів (>1000). Викладені рекомендації працюватимуть лише у швидкій мережі. Наприклад, якщо користуватися Wifi, можуть виникнути проблеми. Перехід на Ethernet усуває ці проблеми.
Крім того, якщо у вас величезна збірка зображень, вам слід запускати сервер MariaDB за допомогою такої команди: mariadb –max_allowed_packet = 128M. (Якщо ви добре знаєтеся на користуванні MariaDB, ви також можете змінити параметри роботи сервера за допомогою файла
my.iniабо~/.my.cnf.)
Попередження
Локаль, яку використано у сервері Mysql має збігатися із локаллю комп’ютера, де запущено digiKam, щоб запобігти проблемі зі збереженням подвійних значень у таблицях бази даних.
Параметри бази даних¶
Нижче наведено короткі рекомендації щодо правильного типу бази даних, залежно від умов користування.
Сховище даних
Тип
Записи
Помітки
HDD
SQLite
< 500 тисяч
Попередження: WAL є обов’язковим.
HDD
Вбудований MariaDB
> 500 тисяч
SSD
SQLite
WAL є необов’язковим.
SSD
Вбудований MariaDB
NVME
SQLite
WAL є необов’язковим.
NVME
Вбудований MariaDB
Портативне
SQLite
< 500 тисяч
Попередження: обов’язково WAL. Мінімум USB 3.1 з диском NVMe.
Портативне
Вбудований MariaDB
> 500 тисяч
Попередження: мінімум USB 3.1 з диском NVMe.
Мережева ФС
SQLite
Заборонено: бази даних SQLite мають зберігатися у локальній файловій системі.
Мережева ФС
Вбудований MariaDB
Заборонено: бази даних MariaDB мають зберігатися у локальній файловій системі.
Віддалене
Сервер MariaDB
Рекомендовано користуватися гігабітним Ethernet або ширшим каналом.
- HDD¶
Жорсткий диск.
- SSD¶
Твердотільний накопичувач для зберігання даних.
- NVMe¶
Енергонезалежна пам’ять.
- Портативне¶
Зовнішній HDD/SSD/NVMe з інтерфейсом USB.
- Мережева ФС¶
Мережева файлова система, яку змонтовано локально.
- Віддалене¶
Сервер мережі, як NAS (Network Attached Storage).
- WAL¶
Write-Ahead Lock («блокування до запису», лише база даних SQLite).
Примітка
Докладніші відомості щодо носіїв даних та захисту даних можна знайти у розділі щодо керування цифровою власністю.
Див. також розділ щодо параметрів збірки, щоб дізнатися більше про спосіб налаштовування ваших збірок, залежно від правил зберігання даних.
Важливо
Якщо ви спільно використовуєте той самий портативний носій даних для зберігання баз даних і/або збірок для різних комп’ютерів, вам слід користуватися операційними системами одного типу, тими самими шляхами монтування (користуйтеся символічними посиланнями для зміни цих шляхів) та тією самою версією digiKam усюди, щоб запобігти конфліктам у схемах баз даних.
Якщо ви користуєтеся загальним віддаленим сервером для зберігання баз даних і збірок, вам слід використовувати скрізь одну версію digiKam, щоб запобігти конфліктам у схемах баз даних. Не можна використовувати одночасно різні комп’ютери з digiKam для роботи із базою даних та зі збірками.
Якщо ви використовуєте спільний віддалений сервер для зберігання збірок, а бази даних зберігаються на різних комп’ютерах, можна використовувати різні версії digiKam, а сеанси digiKam для роботи зі збірками можна запускати одночасно. Втім, якщо ви вмикаєте запис метаданих до файлів на сторінці налаштувань метаданих, слід подбати про усування можливих конфліктів, пов’язаних із одночасним доступом до одного файла з різних комп’ютерів.
Перенесення бази даних¶
digiKam постачається із інструментом Перенесення баз даних, за допомогою якого користувачі можуть переносити свої дані. Наприклад, інструмент перенесення може допомогти вам перенести дані з формату SQLite до формату MariaDB, і навпаки.
Щоб перейти на іншу систему роботи з базами даних, скористайтеся пунктом меню . У відповідь буде відкрито таке діалогове вікно:
Засіб перенесення бази даних у digiKam¶
Тепер виберіть відповідні типи баз даних, дані з яких ви хочете перетворити. Нарешті, натисніть кнопку Перенести, щоб перетворити дані бази даних з формату SQLite на формат MariaDB (або навпаки). Тривалість дії залежить від розміру бази даних.
Примітка
Під час перетворення буде перенесено лише дані основної бази даних digiKam. Усі інші бази даних доведеться перебудувати на кроці остаточної обробки за допомогою засобів супроводу. Бази даних мініатюр та подібності доведеться створити наново, а для бази даних облич слід позначити пункт Вилучити і повторно створити всі тренувальні дані.
Рекомендації щодо резервного копіювання баз даних¶
З міркувань захисту даних планування резервного копіювання баз даних за допомогою crontab і мережі може запобігти втраті даних у разі відмови пристрою. Для резервного копіювання можна також скористатися NAS або зовнішніми диском.
Назву кожної бази даних може бути змінено на іншу, унікальну назви. Використання цієї назви надає змогу користувачу створювати резервну копію лише потрібних йому даних. Наприклад, якщо назвати основну базу даних «digiKam_Core», можна створювати резервні копії відповідної таблиці (найважливіших даних). Бази даних мініатюр та розпізнавання облич завжди можна створити на основі початкових зображень, тому їхня втрата не є критичною.
У розділі «Засіб обслуговування» наведено пояснення щодо обслуговування вмісту баз даних і синхронізування даних збірок із базами даних і навпаки.
Статистика бази даних¶
У digiKam передбачено унікальний інструмент для показу статистичних даних щодо збірки. Можна отримати дані щодо кількості зображень, відео (із розподілом за форматами зображень), міток тощо. Крім того, інструмент надає дані щодо модуля роботи із базою даних (Sqlite або MariaDB) та розташування файла бази даних (місця, де зберігаються дані вашої збірки).
Переглянути статистичні дані щодо роботи бази даних можна за допомогою пункту меню . У відповідь буде показано приблизно таке діалогове вікно:
Вікно статистики щодо бази даних у digiKam¶