Following on from my earlier 10 performance wins post, here is another group of 10 I have worked on.
I have just implemented MASTER_GTID_WAIT() in MariaDB 10.0. This can be used to give a very elegant solution to the problem of stale reads in replication read-scaleout, without incuring the overheads normally associated with synchronous replication techniques. This idea came up recently in a discussion with Stephane Varoqui, and is similar to the concept of Lamport logical clock described in …[Read more...]
In MySQL, filesort is the catch-all algorithm for producing sorted results for ORDER-BY or GROUP-BY queries. MySQL has two algorithms for filesort, both the original and the modified algorithms are described in the user manual. The most commonly used algorithm is the so called modified algorithm, it is used for all cases except when BLOB and TEXT column are involved.
In 5.7.3, Tor Didriksen in the optimizer team introduced one more optimization that applies to the modified algorithm. Let us first take a look at how …[Read more...]
At FOSDEM 2014 ProxySQL and MaxScale were both presented. Both are proxy that can help build sophisticated MariaDB/MySQL architectures. But currently what is the most used proxy with MySQL? It is HAproxy. HAproxy is a level 4 proxy that has no knowledge of the MySQL protocol. Being low level makes it very fast but it [...]
Whether you are a database administrator, database application developer, web developer, system administrator or system architect, if you are working with a database system such as the MySQL Server, you will want to ensure the best possible performance.
To learn about the great performance you can get from a MySQL Database, visit Dimitri's blog.
If you have experience maintaining a database server, can use MySQL tools and have knowledge of general SQL statements and SQL tuning principles, consider taking the …[Read more...]
Configuring MySQL Server, with the dozens of options available, has always been perceived as a bit of a black art. In MySQL Database 5.6, configuring your MySQL server for optimal performance is easier than ever before.
In the MySQL for Database Administrators course you can learn more.
MySQL 5.6 is configured to work faster out of the box in a wide range of installation scenarios and it is easier than ever to set up the server by adjusting only a small …[Read more...]
In my previous post I wrote about how I achived a >40% speedup on sysbench read-only using profile-guided optimisation (PGO). While this is a preliminary result, I though it was so interesting that it deserved early mention. The fact that any benchmark can be improved that much shows clearly that PGO is something worth looking into. Even if we will probably not improve all workloads by 40%, it seems highly likely that we can obtain significant gains also for many real workloads.
I had one or two interesting comments on the post that raise valid concerns, so I wanted to …[Read more...]
This is the very first post in the series of Performance Schema Implementation Internals. This series is for MySQL Developers to understand implementation of Performance Schema. For user point of view of performance Schema, please refer to mysql documentation link : http://dev.mysql.com/doc/refman/5.7/en/performance-schema-quick-start.html
This post talks about the mechanism to register instruments in Performance Schema (referred as P_S from hereon) so that their statistics could be collected at …[Read more...]
You love MySQL and MariaDB for its ease of deployment, but what
if you could increase performance and save significant time and
money when your application starts to scale without having to
change your applications?
SPEAKER: Tim Callaghan, VP of Engineering at Tokutek
DATE: Tuesday, January 28th
TIME: 1pm ET
Join this interactive webinar with Tokutek’s VP of Engineering, Tim Callaghan, as he walks through the potential pitfalls when using MySQL or …[Read more...]
Continuing my investigation of single-threaded performance in the MariaDB server, I managed to increase throughput of single-threaded read-only sysbench by more than 40% so far:
I use read-only sysbench 0.4.12 run like this:
sysbench --num-threads=1 --test=oltp --oltp-test-mode=simple --oltp-read-only --oltp-skip-trx run
And mysqld is run with minimal options:
sql/mysqld --no-defaults --basedir=X --datadir=Y --innodb-buffer-pool-size=128M
With modern high-performance CPUs, it is necessary to do detailed measurements using the built-in …[Read more...]