Database-instellingen¶
De opties voor Database voor digiKam worden gezet in
.Notitie
Voor een introductie over de interne opslag van gegevens, ga naar de sectie Databases van het hoofdstuk Beginnen.
De SQLite-database¶
SQLite is een beheersysteem voor een relationele database, geschreven in de C programmeerbibliotheek. SQLite is niet direct te vergelijken met client/server SQL database-engines zoals MySQL, Oracle of PostgreSQL. Het is echter een ingebedde SQL database-engine, die ingebed is in een eindprogramma. SQLite leest en schrijft direct uit/naar gewone bestanden op een schijf. SQLite is bijna altijd de beste oplossing voor lokale opslag op een schijf met laag gelijktijdig schrijven en minder dan een terabyte aan inhoud. SQLite is snel en betrouwbaar en vereist geen configuratie of onderhoud. Het houdt de zaken eenvoudig. SQLite “werkt gewoon”.
digiKam gebruikt standaard SQLite als zijn back-end voor het opslaan van belangrijke metagegevens en miniaturen. digiKam slaat informatie op in vier SQLite-bestanden:
Database
Bestandsnaam
Kern
digikam4.db
Miniaturen
thumbnails-digikam.db
Gelijkenissen
similarity.db
Gezichten
recognition.db
Om uw toepassing snel en soepel uit te voeren zou u periodiek uw databases moeten controleren en optimaliseren: selecteer Database opschonen van het hoofdstuk Hulpmiddelen voor onderhoud voor details.
en dan Database opschonen uitvoeren. Zie de sectieDe SQLite-browser, is een visueel hulpmiddel van hoge kwaliteit en gemakkelijk te gebruiken voor beheren van objecten in de database, die we zeer aanbevelen. Voor Ubuntu en zijn afgeleiden, kan deze geïnstalleerd worden met sudo apt install sqlitebrowser. Daarna kunt u omschakelen naar de map waar de digiKam databases is opgeslagen om de inhoud van de database te visualiseren.
Notitie
Voor de beste prestaties, sla de digiKam-databases op op de snelste hardware (zoals een SSD of NVMe) met ruim genoeg vrije ruimte. Dit is speciaal belangrijk voor de miniaturendatabase. Een bestandssysteem op afstand, zoals NFS, kan hier niet gebruikt worden. Vanwege redenen van prestatie en techniek, kan SQlite geen media in het netwerk gebruiken.
De SQLite databasebestanden zijn te vinden in de map verzameling, die u hebt toegevoegd aan digiKam. (Standaard, als u uw “Afbeeldingen” verzameling hebt toegevoegd, zullen de database bestanden aanwezig zijn in de map ~/Afbeeldingen
).
De modus WAL van SQLite is een erg belangrijke optie die we u aanbevelen om aan te zetten met grote databases om transacties te optimaliseren en prestaties te verbeteren.
De MySQL-database¶
MySQL Versus SQLite¶
MySQL is een open-source, relationele database beheersysteem, geschreven in C en C++. Oorspronkelijke ontwikkeling van MySQL door Michael Widenius en David Axmark in het begin van 1994. Sun Microsystems verkreeg MySQL in 2008, die later door Oracle in 2010 werd verkregen. MySQL werkt nu op bijna alle systeemplatforms (Linux, Microsoft Windows, OS X, SunOS …).
MariaDB server is een door een gemeenschap ontwikkelde afsplitsing van MySQL server. Gestart door kernleden van het originele MySQL team, werkt MariaDB actief met buitenstaande ontwikkelaars om de meest functionele, stabiele en van een gezonde licentie voorziene, open SQL server in the industrie te leveren.
MariaDB heeft het gebruiken van MySQL overgenomen, vanwege een paar basis redenen:
De ontwikkeling van MariaDB is meer open en levenslustig.
Meer vernieuwende functies.
Meer opslag-engines.
Betere performance.
Compatibel en gemakkelijk te migreren.
digiKam biedt ook ondersteuning voor de populaire MySQL database engine. Natuurlijk kunt u zich afvragen waarom u om zou willen schakelen naar MySQL wanneer SQLite al goed de gegevens kan beheren? MySQL biedt vele voordelen voor het opslaan van gegevens van digiKam, speciaal bij verzamelingen met meer dan 100.000 items. Met zulke grote verzamelingen, introduceert SQLite latency die de toepassing vertraagt.
Notitie
Met de optie WAL ingeschakeld kan SQLite gemakkelijk gebruikt worden voor meer dan 100.000 items speciaal met een SSD- of NVMe-opslag. Het zou zelfs sneller moeten zijn dan MySQL en stabieler. Zie deze pagina voor technische details.
Met MySQL als de database back-end voor digikam bent u in staat om de gegevens zowel lokaal als op servers op afstand op te slaan. MySQL Internal kan gebruikt worden om de lokale SQLite opslag te vervangen en MySQL Server kan gebruikt worden op media opgeslagen op een server op afstand. Op deze manier kunt u meerdere digiKam installaties (bijvoorbeeld, op uw notebook en PC) gebruiken om toegang te hebben tot en beheren van uw fotoverzamelingen. U kunt ook MySQL hulpmiddelen gebruiken om een backup te maken van en de gegevens van digiKam te analyseren.
Om om te schakelen van SQLite naar de MySQL database, ga naar
en dan onder de sectie Database, selecteert u een database uit het afrolmenu.
MySQL intern: dit stelt u in staat om een interne databaseserver te gebruiken op uw systeem. digiKam gebruikt Unix socket voor de verbinding.
MySQL-server: gebruik dit als uw gegevens op een server op afstand zijn en u op een andere machine probeert toegang te krijgen tot de verzameling.
De MySQL interne server¶
digiKam heeft de tendens om langzamer te gaan bij gebruik van een grote verzameling (grootte meer dan 100.000 items) opgeslagen op een vaste schijf (HDD - geen SSD of NVMe apparaat) met de SQLite-database. Om de vertraging te vermijden en efficiency te handhaven, biedt digiKam de optie van het gebruik van de **MySQL Internal. Ter verduidelijking, dit is geen echte server of een publiek netwerk. In plaats daarvan is het een server die alleen actief is wanneer de toepassing actief is.
Interne server maakt een aparte database aan met toegang (alleen terwijl de toepassing actief is) met het commando:
mysql --socket=/home/[user_name]/.local/share/digikam/db_misc/mysql.socket digikam
De interne server gebruikt drie MySQL binaire hulpmiddelen: mysql_install_db
, mysqladmin`en :file:`mysqld
. U kunt hun locaties instellen in de configuratiedialoog. digiKam zal proberen deze binaire bestanden automatisch te vinden als ze geïnstalleerd zijn op uw systeem.
De MySQL server op afstand¶
Voor toegang tot een MySQL server op afstand is het natuurlijk vereist digiKam te gebruiken met een MySQL-server. Als alternatief kunt u ook MariaDB installeren, die het doel goed dient. (Kan gemakkelijk geïnstalleerd worden via deze koppeling.)
Volg de onderstaande instructies, als u geen specifiek gebruikersaccount hebt en een digiKam database al is ingesteld. Voer de commando’s uit op de MySQL server, na vervanging van het wachtwoord door het juiste.
Notitie
U kunt elke databasenaam selecteren. (Hier is het, digikam). U dient eenvoudig de juiste naam in te vullen in de databasenaam voor die van Kern, Miniaturen en Gezicht in het onderstaande dialoogvak.
CREATE USER ''@'%' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO ''@'%' IDENTIFIED BY 'password';
CREATE DATABASE digikam;
GRANT ALL PRIVILEGES ON digikam.* TO ''@'%';
FLUSH PRIVILEGES;
Notitie
Als u een enorme verzameling hebt, dan bevelen wij u aan de MySQL server te starten met mysql –max_allowed_packet = 128M
Tip
Als u problemen hebt met een MySQL-server op een op Ubuntu gebaseerd Linux systeem, gebruik dit additionele commando in de mysql-prompt om het maken MySQL-triggers in te schakelen.
SET global log_bin_trust_function_creators=1;
Ga nu, in digiKam, naar
en dan onder de sectie Database, selecteer MySQL-server uit het afrolmenu.Voer het IP-adres van uw MySQL-server in in het veld Hostnaam en specificeer de juiste poort in het veld Host-poort (de standaard poort is 3306).
Zet in het veld Kern Db-naam de naam in van de eerste database die wordt gebruikt voor opslag van metagegevens van foto’s.
Zet in het veld Miniaturen Db-naam de naam in van de tweede database die wordt gebruikt voor opslag van wavelet-gecomprimeerde miniaturen.
Zet in het veld Gelijkenissen Db Name de naam van de derde database die wordt gebruikt om de gelijkenissen vingerafdrukken, geproduceerd door de vaag zoeken-engine.
Zet in het veld Gezichten Db-naam de naam van de laatste database die wordt gebruikt voor de opslag van de gezichtshistogrammen voor gezichtsherkenning.
Om veilig te verbinden met de server op afstand, voer uw MySQL identificatie in met de velden Gebruiker en Wachtwoord.
Om te controleren of de databaseverbinding juist werkt, druk op de knop Verbinding controleren. Als alles werkt zoals het zou moeten, schakel dan om naar de secties Verzamelingen en voeg de mappen met uw foto’s toe. Druk op OK en wacht totdat digiKam de databases vult met gegevens uit uw foto’s. Dit kan even duren als u veel items hebt om te registreren in de database.
Er zijn enige tips en aanbevelingen om het beste resultaat te krijgen met een externe MySQL databaseserver.
Met een langzaam netwerk hangt digiKam vaak speciaal wanneer de albums veel items (>1000) bevatten. Deze probleem hangt af van netwerkprestaties. Het probleem was bijvoorbeeld reproduceerbaar met gebruik van een Wifi-verbinding. Overschakelen naar ethernet moet het probleem oplossen.
Ook, als u een enorme verzameling hebt, dan zou u de MySQL server moeten starten met mysql –max_allowed_packet = 128M. (Als u goed bekend bent met het gebruik van MySQL, dan kunt u ook uw instellingen in bestand :file`my.ini` of
~/.my.cnf
wijzigen).
Waarschuwing
De taalcode gebruikt in de Mysql server moet hetzelfde zijn als de taalcode van de computer gebruikt om digiKam uit te voeren om problemen te voorkomen met de gemeenschappelijke waarden opgeslagen in de tabellen van de database.
Criteria voor het type database¶
Zie het onderstaande overzicht om het juiste type database te kiezen afhankelijk van uw gebruik.
Opslag
Type
Items
Opmerkingen
HDD
SQLite
< 100K
Waarschuwing: WAL is verplicht.
HDD
MySQL-intern
> 100K
SSD
SQLite
WAL is optioneel.
SSD
MySQL-intern
NVME
SQLite
WAL is optioneel.
NVME
MySQL-intern
Verwijderbaar
SQLite
< 100K
Waarschuwing: WAL verplicht. USB 3.1 is minimum met NVMe-station.
Verwijderbaar
MySQL-intern
> 100K
Waarschuwing: USB 3.1 is minimaal met NVMe-station.
Netwerk-FS
SQLite
Verboden: SQLite databases moeten opgeslagen worden op een lokaal bestandssysteem.
Netwerk-FS
MySQL-intern
Verboden: MySQL databases moeten opgeslagen worden op een lokaal bestandssysteem.
Op afstand
MySQL-server
MariaDB-server wordt ondersteund. Gigabit ethernet of hoger is aanbevolen.
- HDD¶
Vaste schijf.
- SSD¶
Solid State Drive.
- NVMe¶
Niet-vluchtig geheugen.
- Verwijderbaar¶
Externe USB HDD/SSD/NVMe station.
- Netwerk-FS¶
Netwerkbestandssysteem lokaal aangekoppeld.
- Op afstand¶
Netwerkserver zoals NAS (Network Attached Storage).
- WAL¶
Write-Ahead Lock (alleen SQLite database).
Notitie
Kijk in hoofdstuk Digital Asset Management voor meer details over media en gegevensbescherming.
Zie ook het hoofdstuk Verzamelingeninstellingen voor meer details over hoe uw verzamelingen te configureren afhankelijk van uw opslagbeleid.
Belangrijk
Als u dezelfde Verwijderbare media gebruikt voor databases en/of verzamelingen op te slaan tussen verschillende computers, dan moet u hetzelfde soort besturingssysteem hebben, overal dezelfde aankoppelpaden (gebruik symbolische koppelingen om paden te vinden) en overal dezelfde versie van digiKam om conflicten met het schema van de database te vermijden.
Als u een gemeenschappelijke server Op afstand gebruikt om databases en verzamelingen op te slaan, dan moet u overal dezelfde versie van digiKam gebruiken om conflicten met het schema van de database te vermijden. Computers die verschillende exemplaren van digiKam uitvoeren kunnen niet tegelijk toegang hebben tot een gemeenschappelijke database en verzamelingen.
Als u een gemeenschappelijke server Op afstand gebruikt om verzamelingen op te slaan, met de databases op individuele computers, dan kunnen verschillende versies van digiKam gebruikt worden en digiKam sessies kunnen tegelijk werken op de gemeenschappelijke verzamelingen. Maar u moet voorzichtig zijn met tegelijk toegang tot metagegevens in bestanden als u deze optie uit de pagina Opzetpagina voor metagegevens hebt aangezet.
Migratie van database¶
digiKam komt op met een exclusief hulpmiddel genaamd Databasemigratie, die gebruikers biedt hun gegevens te migreren. Bijvoorbeeld, het migratiehulpmiddel kan u helpen om alle uw gegevens uit een SQLite-database te verplaatsen naar een MySQL-database of vice versa.
Om te migreren naar een andere database, ga naar
. Er zal een dialoogvenster verschijnen:Kies nu de toepasselijke databasetypes waarnaar u wilt converteren. Klik tenslotte op de knop Migreren om de database van SQLite naar MySQL (of vice versa) te converteren. Afhankelijk van de grootte van de database zal deze actie enige tijd duren.
Notitie
Alleen de Kern database van digiKam zal gemigreerd worden door het conversieproces. Alle andere databases moeten opnieuw gebouwd worden met gebruik van nabewerking met de Onderhoudshulpmiddelen. De databases Miniaturen en Gelijkenissen zal vanaf niets moeten worden aangemaakt en de database Gezicht bevat de optie De trainingsgegevens opnieuw bouwen nodig.
Aanbeveling voor backup van database¶
Voor redenen van beveiliging kan het plannen van een reservekopie van de database met crontab over het netwerk helpen tegen het falen van een apparaat. Een NAS of een externe schijf kan al reserve worden gebruikt.
Elke database kan hernoemd worden met een andere unieke naam. Dit biedt gebruiker de om alleen een reservekopie te maken van wat nodig is. Bijvoorbeeld Kern database te hernoemen als digiKam_kern, biedt u de mogelijkheid om alleen van deze tabel een reservekopie te maken, wat het meest belangrijke bestand is. Databases voor Miniaturen, Gelijkenissen en Gezichtsherkenning kunnen altijd vanaf niets opnieuw worden gegenereerd.
Het hoofdstuk over Hulpmiddel onderhoud van digiKam zal uitleggen hoe na enige tijd de inhoud van de database te onderhouden is en hoe de verzamelingen te synchroniseren met informatie in de databases (en omgekeerd).
Database statistieken¶
digiKam biedt een uniek hulpmiddel voor het tonen van statistieken van uw verzamelingen. Het omvat het aantal afbeeldingen, video’s (inclusief individuele aantallen per afbeeldingsformaat), tags etc. dit omvat ook de Database-backend (QSQLITE of QMYSQL) en het Pad naar de database (waar uw verzameling zich bevind).
U kunt uw statistieken bekijken door naar
te gaan. De volgende dialoog zal verschijnen: