Database management: MySQL, MariaDB, PostgreSQL and Redis
Fast queries, data kept safe and backups you know you can restore.
The database is where every problem becomes visible: when it slows down, the application slows down with it; when it stops, the business stops. We handle installation, tuning and management of MySQL, MariaDB, PostgreSQL and Redis, with one measurable goal: fast queries, consistent data and backups you genuinely know you can restore. Documented configurations, a single technical point of contact and no lock-in.
Overview
We cover the entire lifecycle of your data: first installation, tuning of systems already in production, index design, replication, high availability and migrations. We work both on databases self-hosted on Linux servers and on managed cloud instances - on Google Cloud primarily, on AWS and DigitalOcean as alternatives - and we have no dogma about the engine: we choose or keep whatever holds up best under your real workload.
The method always starts from the numbers, not from impressions: slow query log, execution plans, memory and I/O metrics. Only afterwards do we touch configuration and indexes, one step at a time and always with a way back. Every decision is written down - parameters, reasoning, restore procedure - so the database stops being a black box that only the person who installed it understands, and becomes a piece of infrastructure anyone can verify.
Typical problems we solve
- Queries that answered in milliseconds yesterday now take seconds → we analyse the slow log and execution plans, then fix the worst indexes and queries.
- The e-commerce store buckles right during promotions and traffic spikes → we tune buffers, connections and caching, and bring in Redis where it genuinely lightens the load.
- Backups run every night, but nobody has ever tested a restore → we restore them on a separate environment and measure the actual recovery time.
- The version upgrade has been put off for years out of fear of breaking everything → we test it on a copy of the data and roll it into production with a rollback ready.
- The disk fills up and tables grow out of control → we archive historical data, reclaim space and partition where it helps.
- A single server: one failure means total downtime → we set up replication and failover with known, proven recovery times.
- Everyone connects as root from any network → we create least-privilege users, encryption in transit and restricted access.
What’s included
- Installation and configuration: engine setup with memory, connection and storage parameters calibrated to the hardware and the expected load.
- Performance tuning: analysis of slow queries, execution plans, caching and fine-grained database configuration, with measurements before and after.
- Indexes and query optimisation: reviewing missing or redundant indexes and rewriting the heaviest queries, together with the development team.
- Replication and high availability: replicas, failover and architectures that survive a fault without losing data or requiring nighttime heroics.
- Tested backups and restores: automatic, encrypted backups, restore drills on a separate environment and recovery times written down in black and white.
- Migrations and upgrades: version jumps, engine changes and moves between servers or to the cloud, with an agreed window and a rollback plan.
- Security: least-privilege users, encryption in transit, restricted access and an exposed surface trimmed to the essentials.
Stack and technologies
On MySQL and MariaDB we work with InnoDB, the buffer pool, the slow query log and tools like EXPLAIN and Percona Toolkit for diagnosis and optimisation. On PostgreSQL we use EXPLAIN ANALYZE, autovacuum, B-tree, GIN and partial indexes, and WAL and streaming replication configuration. Redis comes into play as a cache, session store and queue manager, with persistence and eviction policies suited to the case. Where the number of connections calls for it, we add connection pooling with PgBouncer or ProxySQL, and keep everything under observation with Prometheus and Grafana. We manage the servers on Debian and Ubuntu; when a managed service makes sense, we rely on Cloud SQL and Memorystore on Google Cloud or the equivalents on AWS and DigitalOcean. Everything stays documented and reproducible: the environment must never depend on anyone’s memory.
A real-world example
An internal management system on MariaDB became unusable during the last days of every month, exactly when billing and reporting kicked in: frozen screens and idle staff. We turned on the slow query log for a week and identified a handful of queries responsible for most of the load, including a report that scanned the entire transactions table end to end. Two composite indexes, a rewrite of that query and a buffer pool resized to the real data brought the month-end close back to normal speed, without changing any hardware. In the same engagement we replaced the nightly backup that had never been verified with encrypted dumps and a weekly test restore on a separate machine. The client now has a restore procedure that’s written down, tested and has a known duration.
Who it’s for
- Apps and e-commerce whose databases slow down under load or during peak moments.
- Software houses and agencies who want a technical reference for the database behind their clients’ projects.
- SaaS and business systems with critical data that can’t afford data loss or uncertain restores.
- Anyone who’s already been through an outage and finally wants verified backups, replication and a clear configuration.
How we work
The first step is an assessment: we measure slow queries, indexes, configuration and the state of your backups, then hand over a readable picture with priorities and estimated costs. Work proceeds in steps, each one tested on a copy of the data before touching production and within agreed windows. Standard coverage runs Monday to Friday, 10:00-18:00 , with priority triage: a database outage is a P1 and is picked up within one business hour, as described on the response times page. For ongoing coverage many clients choose hour packages, which never expire. At the end, you’re left with documented configurations, tested backups and a restore procedure your team knows how to run even without us.
Frequently asked questions
Which databases do you work with?
We work with MySQL, MariaDB, PostgreSQL and Redis, either self-hosted on Linux servers or as a managed cloud service. We pick or keep the engine that best fits your application’s real workload, with no commercial bias.
My database is slow: can you improve performance?
Yes. We start from the slow query log and execution plans, fix missing or redundant indexes and tune the engine configuration. In most cases response times improve significantly without touching the application.
Do you take backups and verify that restores actually work?
Yes, and that’s the core of the service. We set up automatic, encrypted backups, then test the restore on a separate environment and measure how long it takes: a backup is only worth something if you know you can bring it back online within a known time.
Can you handle a migration or upgrade without stopping the service?
We plan every step with an agreed window, a test on a copy of the data and a rollback plan ready to go. Where possible we use replication and cutover to keep downtime to a minimum, always communicated in advance.
How much does database management cost?
We bill at a flat €75/hour. For ongoing management there are hour packages with no expiry: 5 hours at €350, 10 at €660, 20 at €1,200. Quotes are free, with a reply within one business day.
Is a self-hosted database better than a managed cloud service?
It depends on load, budget and in-house skills. A managed instance - such as Cloud SQL on Google Cloud - takes patching and failover off your hands; a self-hosted database on Debian or Ubuntu costs less and leaves you full control. We weigh the numbers together and document the choice.
Do you also work at night or on weekends?
Guaranteed only for clients with an active on-call plan, and only for real P1 emergencies: production down, data loss, active security incident. On-call is a monthly retainer with limited seats, available on systems we manage and, after a case-by-case assessment, on others too: prices and rules are on the On-call page. Without a plan, coverage is Mon-Fri 10:00-18:00 and out-of-hours work is best effort: it may happen, but it is neither guaranteed nor something you can demand. Night or holiday work planned at least 20 days ahead remains available to everyone, at the surcharged rate.
Need a hand with your infrastructure?
Tell us the problem: we reply with a clear plan and a quote.
Get in touch →