SQLite

1

SQLite - serverless relational database management system


SQLite is suitable for small to medium wikis with low to moderate traffic and is particularly advantageous for portable installations, such as those running from a USB stick, due to its single-file database structure that simplifies backups and migration. It does not require a separate database server, reducing administrative overhead and potential points of failure. However, SQLite does not scale beyond a single server, making it unsuitable for wikis that may grow to have many concurrent users or large amounts of content.

Show Files (1 file)

Comments

  1. Issues to consider

    1. For advanced search capabilities, MySQL or MariaDB are strongly recommended.
    2. The decision to use SQLite should ideally be made before creating the wiki, as migrating from SQLite to MySQL later is difficult.
    3. The database file is typically stored in a directory outside the web root.
      1. ../data/db_name.sqlite
    4. To ensure optimal performance, the database should be configured in WAL (Write-Ahead Logging) mode.
      1. PRAGMA journal_mode=wal;
    5. For full text search functionality, SQLite must be compiled with the FTS5 module, which is commonly included in modern builds.
    6. Access control is handled through the file-system permissions of the database file.
    7. SQLite requires that index names be unique across the entire database, not just within a single table.
    8. The entire database is stored in a single file, which simplifies backup procedures. If the database is offline, a simple file copy suffices for backup.
    9. A SQLite database file should not be used for more than one wiki. The cache table could be inserted into an additional database file.