MySQL JSON Columns: Store, Query and Index JSON Data
Use the MySQL JSON type: insert and validate documents, extract with -> and ->>, update with JSON_SET, index with generated and multi-valued indexes.
Blog
Installing, tuning, securing and backing up MySQL, MariaDB, PostgreSQL, Redis, MongoDB and more.
Use the MySQL JSON type: insert and validate documents, extract with -> and ->>, update with JSON_SET, index with generated and multi-valued indexes.
Add TimescaleDB to PostgreSQL, create hypertables, insert and query time-series data, use continuous aggregates, compression and retention policies.
Build a three-node MariaDB Galera Cluster: wsrep settings, bootstrapping, joining nodes, SST methods, firewall ports, quorum and recovery.
Install Redis on Ubuntu, configure it as a systemd service, set a password and memory limit, keep it off the internet, and test it with redis-cli.
Install Neo4j Community Edition, set the initial password and memory, secure network access, run Cypher queries, import CSV data and back up a graph database.
Set up pgBackRest for PostgreSQL: WAL archiving, full, differential and incremental backups to disk or S3, retention, encryption and PITR.
Design PostgreSQL access control: roles vs users, group roles, GRANT on databases, schemas and tables, default privileges, read-only users, and RLS.
Why and how to move MyISAM tables to InnoDB: find them, convert one table or a whole database, row size and disk checks, downtime, WordPress and tuning.
Install and configure PgBouncer: why PostgreSQL needs pooling, session vs transaction mode, auth, pool sizes, app settings and monitoring.
What the InnoDB buffer pool does, how to size it for dedicated and shared servers, check hit ratio, resize online and warm it after restarts.
Compare SQLite and PostgreSQL for production web apps: architecture, concurrency, performance, operations, backups and features, with a decision guide.
Upgrade PostgreSQL between major versions on Debian or Ubuntu: plan it, use pg_upgradecluster or pg_upgrade, dump and restore, and verify.
Why Valkey forked from Redis, licensing differences, compatibility for apps and clients, distro packaging, and migrating from Redis to Valkey.
Fix PostgreSQL peer authentication failed: how peer and scram-sha-256 work in pg_hba.conf, connecting over TCP, user maps and method changes.
Fix MySQL error 1040: check current and peak connections, find who holds them, kill stuck queries, size max_connections and fix the cause.
Set up InfluxDB 2 with Docker or apt, create an org, bucket and tokens, write data with line protocol and Telegraf, query it, and visualise it in Grafana.
Manage MySQL, MariaDB, PostgreSQL or SQLite in the browser with Adminer: Docker or Nginx setup, access restrictions and safer alternatives.
Run mysql_secure_installation on Ubuntu and Debian: each prompt explained, auth_socket and the root password loop, MariaDB differences, and further hardening.
Run Qdrant on your own server: Docker Compose setup, API key, collections and distance metrics, points with payloads, filtered search, Python client, backups.
Index MongoDB well: single-field, compound, multikey, text, TTL, partial and unique indexes, the ESR rule, explain() output, and finding unused indexes.
Connect MySQL Workbench, DBeaver or HeidiSQL to MySQL on a VPS securely through an SSH tunnel, with connection settings and common errors.
SQL vs NoSQL compared: relational tables vs document, key-value, wide-column and graph stores, schemas, consistency, scaling, use cases and how to choose.
Find and edit MySQL and MariaDB config files: my.cnf locations and read order, option groups, conf.d includes, SET PERSIST, client files and key settings.
Set up PostgreSQL streaming replication: replication user, pg_hba rules, pg_basebackup, replication slots, lag monitoring and promoting a standby.