Have you ever been curious about what performance impact SSL has when used with MySQL? We recently benchmarked SSL vs non-SSL performance in MySQL using yaSSL. yaSSL is bundled with source distributions of MySQL by default. We compared both the footprint size as well as average query times for SELECT queries (measured with the sysbench tool).
Our findings were part of a presentation on MySQL security practices along with an introduction to SSL and TLS. It was titled “Securing MySQL with a Focus on SSL“, and was recently presented at the 2011 O`Reilly MySQL Conference & Expo. If you missed our presentation, or if you would like to download the slides as a reference, you can find them in PDF format on our Media Page.
Our benchmark machine was an Apple Macbook Pro, with the following specs:
Apple Macbook Pro
Intel Core 2 Duo
4 MB L2 Cache, 2GB Memory, 667 MHz Bus Speed
The difference in footprint size between an installation of MySQL with SSL support versus one without SSL is very small (about 5%). There are two directories containing size differences: the `lib` and `bin` directories, with size comparisons as shown in Figure 1, below.
Footprint size comparison of MySQL with SSL (Green) and MySQL without SSL (Red). This was calculated by running the “du” command inside the MySQL installation directory after a new install.
AVERAGE SELECT QUERY TIMES
Looking at average query times, Figure 2 shows a breakdown of average query time (ms) comparisons for varying number of concurrent client connections. Looking at one sample specifically, we can see that for a client concurrency of eight, there is a 16.9% increase in the average query time when connections are using SSL.
Average query times (in ms) for varying number of concurrent client connections. Results were obtained by using the sysbench tool on a new MySQL installation.
These tests were run on a laptop using the sysbench tool. Speeds on enterprise platforms will vary. If you have any questions about our findings or methodology for testing, please email us directly at email@example.com.