Impostazioni della banca dati

Le opzioni della Banca dati di digiKam vengono configurate da Impostazioni ‣ Configura digiKam… ‣ pagina Banca dati.

Nota

Per un’introduzione alla memorizzazione interna dei dati interni fai riferimento al paragrafo Banca dati del capitolo Primi passi.

La banca dati SQLite

SQLite is a relational database management system, written in the C programming library. SQLite is not directly comparable to client/server SQL database engines such as MariaDB or PostgreSQL. Rather, it is an SQL database engine that is embedded in an end program. SQLite reads and writes directly to ordinary disk files. SQLite is almost always the best solution for device-local storage with low write-concurrency and less than a terabyte of content. SQLite is fast and reliable and it requires no configuration or maintenance. It keeps things simple. SQLite «just works».

Per impostazione predefinita, digiKam usa SQLite come suo motore per memorizzare i metadati e le miniature importanti. digiKam memorizza le informazioni in quattro file di SQLite:

Banca dati

Nome del file

Principale

digikam4.db

Miniature

thumbnails-digikam.db

Somiglianze

similarity.db

Volti

recognition.db

Per mantenere l’applicazione veloce e fluida, devi periodicamente controllare e ottimizzare le tue banche dati: seleziona Strumenti ‣ Manutenzione…, poi Esegui la pulizia delle banche dati. Per i dettagli, consulta il paragrafo Pulizia delle banche dati del capitolo Strumenti di manutenzione.

Il Browser per SQLite, è uno strumento visivo di alta qualità e di facile uso per gestire gli oggetti delle banche dati, ed è vivamente consigliato il suo utilizzo. In Ubuntu e derivate può essere installato tramite il comando sudo apt install sqlitebrowser. Puoi quindi sfogliare fino alla cartella in cui sono memorizzate le banche dati di digiKam e visualizzarne il contenuto.

Nota

Per garantire le migliori prestazioni, salva le banche dati di digiKam nell’hardware più veloce (tipo SSD o NVMe) con molto spazio libero. Ciò è particolarmente importante per la banca dati delle miniature. Qui non può essere utilizzato un sistema di file remoto come NFS. Per ragioni tecniche e prestazionali, SQLite non può utilizzare un dispositivo dalla rete.

I file della banca dati SQLite si trovano nella cartella della raccolta che hai aggiunto a digiKam (se hai aggiunto la tua raccolta «Immagini», per impostazione predefinita il file della banca dati si troverà nella cartella ~/Pictures).

La pagina di configurazione SQLite di digiKam

La modalità WAL di SQLite è un’opzione molto importante che ti consigliamo di attivare per ottimizzare le transazioni e migliorare le prestazioni.

The MariaDB Database

MariaDB Versus SQLite

Il server MariaDB è un fork del server MySQL sviluppato dalla comunità. Avviato dai membri principali del team originario di MySQL, MariaDB lavora attivamente con sviluppatori esterni per offrire il server SQL più ricco di funzionalità, stabile, rilasciato in modo sano e con licenza aperta del settore.

L’utilizzo di MariaDB ha superato MySQL per alcune semplici ragioni:

  • Lo sviluppo di MariaDB è più aperto e vibrante.

  • Ha più funzionalità all’avanguardia.

  • Più motori di archiviazione.

  • Migliori prestazioni.

  • Compatibile e semplice da migrare.

Starting with digiKam 9.2.0, MySQL is no longer supported. digiKam now exclusively supports MariaDB as its relational database management system for users who require a client-server database solution.

digiKam provides support for the popular MariaDB database engine. Of course, you might wonder why you’d want to switch to MariaDB when SQLite already does a good job of managing the data? MariaDB offers many advantages for storing digiKam data, especially when collections include more than 500,000 items. With such large collections, SQLite can introduce latency which slows down the application.

Nota

With WAL option enabled, SQLite can be easily used for more than 500,000 items, especially with an SSD or NVMe storage. It may even be faster than MariaDB and more stable. See this page for technical details. Long-time digiKam users report managing more than 1M items without problems with this configuration.

Suggerimento

If you use a former MySQL database created with an older digiKam version, we highly recommend migrating to MariaDB. You can migrate to MariaDB following this tutorial.

Using MariaDB as digiKam’s database back-end allows you to store the data on local as well as remote servers. MariaDB Internal can be used to replace the local SQLite storage, and MariaDB Server can be used on media stored on a remote server. This way, you can use multiple digiKam installations (for instance, on your notebook and PC) to access and manage your photo collections. You can also use MariaDB tools to backup and analyze digiKam’s data.

To switch from SQLite to MariaDB database, go to Settings ‣ Configure digiKam… and then under Database section, select a database from the drop down list.

  • MariaDB Internal: This allows to run an internal database server on your system. digiKam uses Unix socket for the connection.

  • MariaDB Server: Use this if your data is on a remote server and you’re on a different machine trying to access the collection.

The MariaDB Internal Server

digiKam tends to slow down when using a large collection (size greater than 500,000 items) hosted on a hard drive (HDD - not an SSD or NVMe device) with the SQLite database. To avoid the delay and maintain efficiency, digiKam provides the option of using MariaDB Internal. To be clear, this isn’t an actual server, or a public network. Instead, it is a server that runs only while the application is running.

Il server interno crea una banca dati separata cui si può accedere (solo quando l’applicazione è in esecuzione) utilizzando il comando:

mariadb --socket=/home/[user_name]/.local/share/digikam/db_misc/mysql.socket digikam

The internal server uses three MariaDB Binary Tools: mariadb_install_db, mariadbadmin, and mariadbd. You can configure their locations in the configuration dialog. digiKam will try to find these binaries automatically if they’re installed on your system.

The digiKam MariaDB Internal Configuration Page

The MariaDB Remote Server

Obviously, access to a MariaDB server is required to use digiKam with a remote MariaDB. You can install MariaDB easily using this link.

Follow the instructions below, if you don’t have a dedicated user account and a digiKam database already set up. Run the commands in MariaDB server, after replacing password with the correct one.

Nota

Puoi selezionare un qualsiasi nome per la banca dati (qui è semplicemente digikam, ricordati solo di compilare correttamente il nome della banca dati principale, di quella per le miniature, di quella per i visi e per le somiglianze nella finestra mostrata qui sotto.

CREATE USER ''@'%' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO ''@'%' IDENTIFIED BY 'password';
CREATE DATABASE digikam;
GRANT ALL PRIVILEGES ON digikam.* TO ''@'%';
FLUSH PRIVILEGES;

Nota

If you have an enormous collection, it’s recommended to start the MariaDB server with mariadb –max_allowed_packet = 128M

Suggerimento

If you have problems with a MariaDB server on a Ubuntu based Linux system, execute this additional command in the MariaDB prompt to enable the creation of SQL triggers.

SET global log_bin_trust_function_creators=1;

Now, in digiKam, go to Settings ‣ Configure digiKam… and then under the Database section, select MariaDB Server from the drop down list.

The digiKam Remote MariaDB Configuration Page

Enter the IP address of your MariaDB server in the Host Name field and specify the correct port in the Host Port field (the default port is 3306).

Imposta il campo Nome Bd principale al nome della prima banca dati che viene utilizzata per memorizzare i metadati delle fotografie.

Imposta il campo Nome Bd miniature al nome della seconda banca dati utilizzata per memorizzare le miniature compresse con wavelet. Il percorso per memorizzare i dati delle miniature può essere locale in modo da evitare scambi pesanti di dati tra il server e il computer utilizzato dal programma. La memorizzazione delle miniature in remoto può ridurre le prestazioni del programma e introdurre latenze nel caso di raccolte di grandi dimensioni.

Imposta il campo Nome Bd somiglianze al nome della terza banca dati utilizzata per memorizzare i codici di controllo delle somiglianze prodotte dal motore per le ricerche approssimate.

Imposta il campo Nome Bd volti al nome dell’ultima banca dati utilizzata per memorizzare gli istogrammi dei volti per il riconoscimento facciale.

To safely connect to the remote server, enter your MariaDB identification using the User and Password fields.

Premi il pulsante Verifica la connessione per controllare se la connessione con la banca dati funziona correttamente: se tutto va come deve, passa alla sezione Raccolte, e aggiungi le cartelle che contengono le tue fotografie. Premi quindi OK, e aspetta affinché digiKam popoli la banca dati con i dati delle tue foto. Questo può richiedere un po” di tempo se hai molti elementi da registrare nella banca dati.

There are some tips and recommendation to obtain the best results with a remote MariaDB database server.

  • Con una rete lenta digiKam si blocca per molto tempo, specialmente se l’album contiene molti elementi (>1000). Questo problema dipende dalle prestazioni della rete: per esempio, il problema è riproducibile usando connessioni Wifi. Passa a una Ethernet per risolvere il problema.

  • Also, if you have an enormous collection, you should start the MariaDB server with mariadb –max_allowed_packet = 128M. If you’re well acquainted with using MariaDB, you could also change your settings in my.ini or ~/.my.cnf files.

Avvertimento

The locale used in the MariaDB server must be the same as the locale from the computer used to run digiKam to prevent problems with the common values saved in the tables of the database.

Criteri per il tipo di database

Per scegliere il giusto tipo di banca dati, in base al tuo caso d’uso vedi il riepilogo sotto riportato.

Archiviazione

Tipo

Elementi

Commenti

HDD

SQLite

< 500K

Attenzione: WAL è obbligatorio.

HDD

MariaDB-Internal

> 500K

SSD

SQLite

WAL è facoltativo.

SSD

MariaDB-Internal

NVME

SQLite

WAL è facoltativo.

NVME

MariaDB-Internal

Rimovibile

SQLite

< 500K

Attenzione: WAL è obbligatorio. USB 3.1 è il minimo con un dispositivo NVMe.

Rimovibile

MariaDB-Internal

> 500K

Attenzione: USB 3.1 è il minimo con un dispositivo NVMe.

Rete FS

SQLite

Proibito: le banche dati SQLite devono essere memorizzate in un sistema di file locale.

Rete FS

MariaDB-Internal

Prohibited: MariaDB databases must be stored on local file system.

Remoto

MariaDB-Server

Gigabit Ethernet or higher is recommended.

HDD

Disco rigido (HDD).

SSD

Dispositivo a stato solido.

NVMe

Memoria non volatile.

Rimovibile

Dispositivo USB HDD/SSD/NVMe esterno.

Rete FS

Network File System montato localmente.

Remoto

Server di rete come NAS (Network Attached Storage).

WAL

Write-Ahead Lock (solo banche dati SQLite).

Nota

Per ulteriori dettagli sulla protezione dei dati e dei dispositivi multimediali, consulta il capitolo Gestione dei beni digitali.

Per ulteriori dettagli su come configurare le raccolte in base alla tua politica di conservazione dei dati, consulta anche il capitolo Impostazioni delle raccolte.

Importante

Se condividi lo stesso dispositivo rimovibile per ospitare le banche dati e/o le raccolte tra computer diversi, devi avere lo stesso sistema operativo, gli stessi percorsi di montaggio (usa i collegamenti simbolici per risolvere i percorsi) e la stessa versione di digiKam per evitare conflitti con lo schema delle banche dati.

Se usi un server remoto comune per ospitare le banche dati e le raccolte, devi usare la stessa versione di digiKam ovunque in modo da evitare conflitti con lo schema delle banche dati. I computer che eseguono istanze differenti di digiKam non possono accedere contemporaneamente a una banca dati e una raccolta comune.

Se usi un server remoto comune per ospitare le raccolte, con le banche dati memorizzate su computer singoli, possono dunque essere utilizzate versioni differenti di digiKam e puoi accedere alle raccolte comuni in contemporanea con sessioni diverse di digiKam. Se hai attivato questa opzione dalla pagina di configurazione dei metadati, dovrai prestare attenzione agli accessi contemporanei ai metadati dei file.

Migrazione della banca dati

digiKam comes up with an exclusive tool named Database Migration, that allows users to migrate their data. For example, the migration tool can help you move all your data from a SQLite database into a MariaDB database, or vice versa.

Per migrare a un’altra banca dati, vai al menu Impostazioni ‣ Migrazione della banca dati…. Comparirà un riquadro di dialogo:

Lo strumento di migrazione della banca dati di digiKam

Now choose the appropriate database types you want to convert to. Finally, click on Migrate button to convert the database from SQLite to MariaDB (or vice versa). Depending on the database size, this operation can take a while.

Nota

Da questo processo di conversione sarà migrata solo la banca dati principale di digiKam. Tutte le altre banche dati dovranno essere ricostruite usando la post-elaborazione con gli Strumenti di manutenzione. Le banche dati Miniature e Somiglianza dovranno essere create da zero, mentre la banca dati Volti include l’opzione Ricostruisci i dati di addestramento.

Raccomandazioni sulla copia di sicurezza della banca dati

Per ragioni di sicurezza, pianificare una copia di sicurezza sulla rete usando crontab può aiutare a prevenire guasti dei dispositivi. Per eseguire delle copie di sicurezza può essere utilizzato anche un NAS o un dispositivo esterno.

Ciascuna banca dati può essere rinominata con un nome diverso e univoco. Ciò permette agli utenti di eseguire copie di sicurezza solo sulle cose necessarie. Per esempio, rinominare la banca dati Principale in Principale_digiKam ti permette di creare copie di sicurezza solo di questa banca dati, che è il file più importante. Le banche dati Miniature, Somiglianza e Riconoscimento facciale possono essere sempre rigenerate da zero.

Il capitolo sugli Strumenti di manutenzione di digiKam spiegherà come eseguire la manutenzione dei contenuti della banca dati e come sincronizzare le raccolte con le informazioni nelle banche dati (e viceversa).

Statistiche della banca dati

digiKam provides a unique tool to show the statistics from your collections. It includes count of images, videos (including individual count by image format), tags etc. this also includes the Database Backend (Sqlite or MariaDB) and the Database Path (where your collection is located).

Puoi visualizzare le tue statistiche dal menu Aiuto ‣ Statistiche della banca dati…. Apparirà un riquadro di dialogo tipo questo:

La Finestra di dialogo Statistiche della banca dati di digiKam