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 MariaDB 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.dbMiniaturen
thumbnails-digikam.dbGelijkenissen
similarity.dbGezichten
recognition.db
Om uw toepassing snel en soepel uit te voeren zou u periodiek uw databases moeten controleren en optimaliseren: selecteer en dan Database opschonen uitvoeren. Zie de sectie Database opschonen van het hoofdstuk Hulpmiddelen voor onderhoud voor details.
De 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 configuratiepagina van SQLite van digiKam¶
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 MariaDB-database¶
MariaDB Versus SQLite¶
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.
Vanaf digiKam 9.2.0 wordt MySQL niet langer ondersteund. digiKam ondersteunt nu uitsluitend MariaDB als relationeel databasebeheersysteem voor gebruikers die een client-server-databaseoplossing nodig hebben.
digiKam biedt ook ondersteuning voor de populaire MariaDB database engine. Natuurlijk kunt u zich afvragen waarom u om zou willen schakelen naar MariaDB wanneer SQLite al goed de gegevens kan beheren? MariaDB biedt vele voordelen voor het opslaan van gegevens van digiKam, speciaal bij verzamelingen met meer dan 100.000 items. Met zulke grote verzamelingen, kan SQLite latency introduceren die de toepassing vertraagt.
Notitie
Met de optie WAL ingeschakeld kan SQLite gemakkelijk gebruikt worden voor meer dan 500.000 items speciaal met een SSD- of NVMe-opslag. Het zou zelfs sneller moeten zijn dan MariaDB en stabieler. Zie deze pagina voor technische details. Gebruikers die al lange tijd met digiKam werken, melden dat ze met deze configuratie probleemloos meer dan een miljoen items beheren.
Tip
Als u een bestaande MySQL-database gebruikt die met een oudere versie van digiKam is aangemaakt, raden wij u ten zeerste aan te migreren naar MariaDB. U kunt naar MariaDB migreren door deze handleiding te volgen.
Met MariaDB als de database back-end voor digikam bent u in staat om de gegevens zowel lokaal als op servers op afstand op te slaan. MariaDB Internal kan gebruikt worden om de lokale SQLite opslag te vervangen en MariaDB 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 MariaDB hulpmiddelen gebruiken om een backup te maken van en de gegevens van digiKam te analyseren.
Om om te schakelen van SQLite naar de MariaDB database, ga naar en dan onder de sectie Database, selecteert u een database uit het afrolmenu.
MariaDB intern: dit stelt u in staat om een interne databaseserver te gebruiken op uw systeem. digiKam gebruikt Unix socket voor de verbinding.
MariaDB-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 MariaDB 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 **MariaDB 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:
mariadb --socket=/home/[user_name]/.local/share/digikam/db_misc/mysql.socket digikam
De interne server gebruikt drie MariaDB binaire hulpmiddelen: mariadb_install_db, mariadbadmin`en :file:`mariadbd. 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 configuratiepagina voor de interne MariaDB van digiKam¶
De MariaDB server op afstand¶
Voor toegang tot een MariaDB server op afstand is het natuurlijk vereist digiKam te gebruiken met een MariaDB-server op afstand. Als alternatief kunt u ook MariaDB installeren 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 MariaDB 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 MariaDB server te starten met mariadb –max_allowed_packet = 128M
Tip
Als u problemen hebt met een MariaDB-server op een op Ubuntu gebaseerd Linux systeem, gebruik dit additionele commando in de MariaDB-prompt om het maken MariaDB-triggers in te schakelen.
SET global log_bin_trust_function_creators=1;
Ga nu, in digiKam, naar en dan onder de sectie Database, selecteer MariaDB-server uit het afrolmenu.
De configuratiepagina voor MariaDB op afstand van digiKam¶
Voer het IP-adres van uw MariaDB-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 het veld Db-naam van miniaturen op de naam van de tweede database die wordt gebruikt om de met wavelet gecomprimeerde miniaturen op te slaan. Het pad om de miniaturengegevens op te slaan kan lokaal opgeslagen worden om hoge gegevensuitwisseling tussen de server en de computer met toepassing te vermijden. De miniaturen op afstand opslaan kan de prestaties van de toepassing verminderen en tijdvertraging introduceren met grote verzamelingen.
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 MariaDB 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 MariaDB 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 MariaDB server moeten starten met mariadb –max_allowed_packet = 128M. (Als u goed bekend bent met het gebruik van MariaDB, dan kunt u ook uw instellingen in bestand :file`my.ini` of
~/.my.cnfwijzigen).
Waarschuwing
De taalcode gebruikt in de MariaDB 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
< 500K
Waarschuwing: WAL is verplicht.
HDD
MariaDB-intern
> 500K
SSD
SQLite
WAL is optioneel.
SSD
MariaDB-intern
NVME
SQLite
WAL is optioneel.
NVME
MariaDB-intern
Verwijderbaar
SQLite
< 500K
Waarschuwing: WAL verplicht. USB 3.1 is minimum met NVMe-station.
Verwijderbaar
MariaDB-intern
> 500K
Waarschuwing: USB 3.1 is minimaal met NVMe-station.
Netwerk-FS
SQLite
Verboden: SQLite databases moeten opgeslagen worden op een lokaal bestandssysteem.
Netwerk-FS
MariaDB-intern
Verboden: MariaDB databases moeten opgeslagen worden op een lokaal bestandssysteem.
Op afstand
MariaDB-server
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 MariaDB-database of vice versa.
Om te migreren naar een andere database, ga naar . Er zal een dialoogvenster verschijnen:
He hulpmiddel Migratie van database van digiKam¶
Kies nu de toepasselijke databasetypes waarnaar u wilt converteren. Klik tenslotte op de knop Migreren om de database van SQLite naar MariaDB (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 (Sqlite of MariaDB) 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:
De dialoog voor Databasestatistieken van digiKam¶