Skip to content

Instantly share code, notes, and snippets.

@ozh
Created February 19, 2026 22:37
Show Gist options
  • Select an option

  • Save ozh/5b0a5c1dfc024cff70a0a0e8b69d9f45 to your computer and use it in GitHub Desktop.

Select an option

Save ozh/5b0a5c1dfc024cff70a0a0e8b69d9f45 to your computer and use it in GitHub Desktop.
YOURLS: mysql vs postgresl benchmark
=== YOURLS SQL Queries Benchmark ===
Date: 2026-02-19 22:25:26
Cache plugin: DISABLED
Iterations per query: 10
========================================

--- OPTIONS TABLE QUERIES ---
SELECT all options (WHERE 1=1)                               | Avg:   1.06ms | Min:   0.94ms | Max:   1.71ms
SELECT single option (LIMIT 1)                               | Avg:   0.97ms | Min:   0.86ms | Max:   1.15ms
UPDATE option value                                          | Avg:   1.09ms | Min:   0.90ms | Max:   2.14ms
INSERT new option                                            | Avg:  70.97ms | Min:  49.95ms | Max:  98.93ms
DELETE option                                                | Avg:   2.07ms | Min:   1.85ms | Max:   2.49ms

--- URL TABLE QUERIES (Simple) ---
SELECT url by keyword (simple WHERE)                         | Avg:   2.14ms | Min:   1.79ms | Max:   2.58ms
SELECT * by keyword                                          | Avg:   1.14ms | Min:   0.84ms | Max:   2.09ms
SELECT * by URL                                              | Avg:   0.89ms | Min:   0.85ms | Max:   1.06ms
COUNT keywords by URL                                        | Avg:   0.87ms | Min:   0.82ms | Max:   0.95ms
SELECT keywords by URL                                       | Avg:   0.84ms | Min:   0.81ms | Max:   0.93ms

--- URL TABLE QUERIES (Complex) ---
SELECT * ORDER BY timestamp LIMIT 10                         | Avg:   1.02ms | Min:   0.95ms | Max:   1.18ms
SELECT * ORDER BY clicks DESC LIMIT 10                       | Avg:   1.05ms | Min:   0.92ms | Max:   1.54ms
COUNT all keywords                                           | Avg:   0.70ms | Min:   0.64ms | Max:   0.87ms
COUNT + SUM (aggregation)                                    | Avg:   0.73ms | Min:   0.68ms | Max:   0.88ms

--- URL TABLE QUERIES (Write) ---
UPDATE clicks = clicks + 1                                   | Avg:  86.57ms | Min:  49.91ms | Max: 191.54ms
UPDATE url and title                                         | Avg:   2.39ms | Min:   2.25ms | Max:   2.65ms
INSERT new short URL                                         | Avg: 100.67ms | Min:  49.91ms | Max: 348.09ms
DELETE short URL                                             | Avg:   0.89ms | Min:   0.84ms | Max:   1.08ms

--- LOG TABLE QUERIES ---
INSERT log entry                                             | Avg:  88.17ms | Min:  49.97ms | Max: 173.61ms
SELECT click_time for flood check                            | Avg:   9.03ms | Min:   7.99ms | Max:  10.29ms
GROUP BY referrer with COUNT                                 | Avg:   1.39ms | Min:   1.24ms | Max:   1.70ms
GROUP BY country with COUNT                                  | Avg:   1.27ms | Min:   1.13ms | Max:   1.46ms
DATE_FORMAT + GROUP BY day (complex)                         | Avg:   1.50ms | Min:   1.42ms | Max:   1.68ms
Hourly stats with DATE_ADD (very complex)                    | Avg:   1.44ms | Min:   1.30ms | Max:   1.64ms

========================================
Benchmark completed!

--- SUMMARY BY CATEGORY ---

Simple SELECT (single row)               :   1.42ms average
Simple SELECT with aggregation           :   0.76ms average
Complex SELECT                           :   1.28ms average
Write operations                         :  44.10ms average

--- TOP 5 SLOWEST QUERIES ---
INSERT new short URL                                         : 100.67ms
INSERT log entry                                             :  88.17ms
UPDATE clicks = clicks + 1                                   :  86.57ms
INSERT new option                                            :  70.97ms
SELECT click_time for flood check                            :   9.03ms

--- TOP 5 FASTEST QUERIES ---
COUNT all keywords                                           :   0.70ms
COUNT + SUM (aggregation)                                    :   0.73ms
SELECT keywords by URL                                       :   0.84ms
COUNT keywords by URL                                        :   0.87ms
DELETE short URL                                             :   0.89ms
=== YOURLS SQL Queries Benchmark ===
Date: 2026-02-19 22:27:33
Cache plugin: DISABLED
Iterations per query: 10
========================================

--- OPTIONS TABLE QUERIES ---
SELECT all options (WHERE 1=1)                               | Avg:   1.30ms | Min:   1.22ms | Max:   1.44ms
SELECT single option (LIMIT 1)                               | Avg:   1.60ms | Min:   1.40ms | Max:   2.22ms
UPDATE option value                                          | Avg:   1.66ms | Min:   1.46ms | Max:   1.81ms
INSERT new option                                            | Avg:   2.20ms | Min:   1.81ms | Max:   3.41ms
DELETE option                                                | Avg:   1.63ms | Min:   1.37ms | Max:   2.40ms

--- URL TABLE QUERIES (Simple) ---
SELECT url by keyword (simple WHERE)                         | Avg:   1.48ms | Min:   1.36ms | Max:   1.72ms
SELECT * by keyword                                          | Avg:   1.56ms | Min:   1.42ms | Max:   1.65ms
SELECT * by URL                                              | Avg:   1.46ms | Min:   1.37ms | Max:   1.76ms
COUNT keywords by URL                                        | Avg:   1.58ms | Min:   1.46ms | Max:   2.02ms
SELECT keywords by URL                                       | Avg:   1.50ms | Min:   1.39ms | Max:   1.84ms

--- URL TABLE QUERIES (Complex) ---
SELECT * ORDER BY timestamp LIMIT 10                         | Avg:   1.34ms | Min:   1.22ms | Max:   1.88ms
SELECT * ORDER BY clicks DESC LIMIT 10                       | Avg:   1.40ms | Min:   1.26ms | Max:   1.89ms
COUNT all keywords                                           | Avg:   1.54ms | Min:   1.17ms | Max:   2.32ms
COUNT + SUM (aggregation)                                    | Avg:   1.34ms | Min:   1.23ms | Max:   1.62ms

--- URL TABLE QUERIES (Write) ---
UPDATE clicks = clicks + 1                                   | Avg:   2.31ms | Min:   2.07ms | Max:   2.78ms
UPDATE url and title                                         | Avg:   2.22ms | Min:   1.95ms | Max:   2.60ms
INSERT new short URL                                         | Avg:   2.32ms | Min:   2.09ms | Max:   2.90ms
DELETE short URL                                             | Avg:   1.50ms | Min:   1.38ms | Max:   1.85ms

--- LOG TABLE QUERIES ---
INSERT log entry                                             | Avg:   2.79ms | Min:   2.29ms | Max:   4.33ms
SELECT click_time for flood check                            | Avg:   3.77ms | Min:   3.12ms | Max:   5.31ms
GROUP BY referrer with COUNT                                 | Avg:   1.59ms | Min:   1.45ms | Max:   1.81ms
GROUP BY country with COUNT                                  | Avg:   1.55ms | Min:   1.45ms | Max:   1.90ms
DATE_FORMAT + GROUP BY day (complex)                         | Avg:   5.18ms | Min:   1.79ms | Max:  34.17ms
Hourly stats with DATE_ADD (very complex)                    | Avg:   6.33ms | Min:   1.88ms | Max:  44.49ms

========================================
Benchmark completed!

--- SUMMARY BY CATEGORY ---

Simple SELECT (single row)               :   1.54ms average
Simple SELECT with aggregation           :   1.49ms average
Complex SELECT                           :   2.90ms average
Write operations                         :   2.08ms average

--- TOP 5 SLOWEST QUERIES ---
Hourly stats with DATE_ADD (very complex)                    :   6.33ms
DATE_FORMAT + GROUP BY day (complex)                         :   5.18ms
SELECT click_time for flood check                            :   3.77ms
INSERT log entry                                             :   2.79ms
INSERT new short URL                                         :   2.32ms

--- TOP 5 FASTEST QUERIES ---
SELECT all options (WHERE 1=1)                               :   1.30ms
COUNT + SUM (aggregation)                                    :   1.34ms
SELECT * ORDER BY timestamp LIMIT 10                         :   1.34ms
SELECT * ORDER BY clicks DESC LIMIT 10                       :   1.40ms
SELECT * by URL                                              :   1.46ms
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment