MySQL 5.6 introduced a new feature called extended secondary
keys. We get a lot of questions about it and find that most
of them come from a few incorrect assumption. In this post I'll
try to get rid of the confusion once and for all. Famous last
words... here goes:
Q1: Do I need to do anything to enable extended
secondary keys?
No, nothing at all. It's on by default and I can't see any
sensible reason why you would want to disable it. However, it is
possible to disable it by tuning the optimizer_switch: SET
optimizer_switch='use_index_extensions={on|off}'.
Q2: Does extended secondary keys only work with
InnoDB?
No, it should work with any storage engine that uses the primary
key columns as reference to the row, which means most storage
engines with clustered primary keys. I say "should" because it
requires a minimum of work from the storage engine provider; it …
Each day there is probably work done to improve performance of the InnoDB storage engine and remove bottlenecks and scalability issues. Hence there was another one I wanted to highlight: Scalability issues due to tables without primary keys. This scalability issue is caused by the usage of tables without primary keys. This issue typically shows itself as contention on the InnoDB dict_sys mutex. Now the dict_sys mutex controls access to the data dictionary. This mutex is used at various important places throughout the InnoDB code and as such any contention on the dict_sys mutex is going to have a InnoDB system-wide negative affect.
The post InnoDB scalability issues due to tables without primary keys appeared first on ovais.tariq.
Like TokuDB, InfiniDB is now a fully open source server product. In the past infiniDB was “almost open source”. The open source version was an old release with no access to the advance functions like MPP multi-server execution. This is no more the case. With InfiniDB 4 the open source version is the latest release [...]
There are two basic performance analysis methodologies you can use for most performance issues. The first is the resource-oriented USE Method, which provides a checklist for identifying common bottlenecks and errors. The second is the thread-oriented TSA Method, for identifying issues causing poor thread performance. I summarized the TSA Method in my Stop The Guessing talk at Velocity conf this year, and it is also covered in the Applications chapter of my Systems …
[Read more]This week we discuss features of Percona Server 5.6 compared to MySQL 5.6. Ear Candy is about pt-upgrade, and At the Movies is a set of lightning talks.
Events
DB Hangops -
every other Wednesay at noon Pacific time
Percona Live London 2013 is happening Monday November 11th and Tuesday November 12th, 2013 at the Millenium Gloucester Conference Center
Training
SkySQL Trainings
MySQL Connect 2013 has been a great edition. There was of course a lot of nice announcements of improvements in the the core MySQL server technology. One of the major announcement that received a lot of buzz was MySQL Fabric. MySQL Fabric is an infrastructure component aimed at simplifying construction of a highly available, sharded, [...]
PDP 11/70 front panel (similar to the 11/45)
Out of curiosity, I’ve developed a USE Method-based performance checklist for Unix 7th Edition on a PDP-11/45, which I’ve been running via a PDP simulator. 7th Edition is from 1979, and was the first Unix with iostat(1M) and pstat(1M), enabling more serious performance analysis from shipped tools. Were I to write a checklist for earlier Unixes, it would contain many more “unknowns”.
I often work on the illumos kernel, a direct descendant of Unix …
[Read more]In this post, I’ll provide an example USE Method-based performance checklist for FreeBSD, for identifying common bottlenecks and errors. This is intended to be used early in a performance investigation, before moving onto more time consuming methodologies. This should be helpful for anyone using FreeBSD, especially system administrators.
This was developed on FreeBSD 10.0 alpha, and focuses on tools shipped by default. With DTrace, I was able to create a few new one-liners to answer some metrics. See the notes below the tables.
Physical Resources
component | type | metric |
---|---|---|
CPU | utilization | system-wide: vmstat 1, “us” + “sy”; per-cpu: vmstat -P; per-process: top, … |
It all started with a goal to make InnoDB temporary tables more effective. Temporary table semantics are blessed with some important characteristics that can help us simplify lot of operations.
- Temporary tables are not visible across connections
- Temporary tables lifetime is limited to connection lifetime (unless user explicitly drops it).
What does this means in to InnoDB ?
- REDO logging can be avoided for temporary tables and related objects since temporary tables do not survive a shutdown or crash.
- Temporary table definitions can be maintained in-memory without persisting to the disk.
- Locking constraints can be relaxed since only one client can see these tables.
- Change buffering can be avoided since the majority of temporary tables are short-lived.
In order to implement these changes in InnoDB we took a bit different approach:
…[Read more]On September 21st, during the opening keynote at MySQL Connect 2013, Tomas Ulin disclosed the release of MySQL 5.7.2. This is a milestone release that includes several new features. Unlike the Previous one, which was just a point of pride, where Oracle was stating its continuous commitment to releasing new versions of MySQL. In MySQL 5.7.2, we see several new features:
- First and foremost, performance. The announcement slides say MySQL 5.7.2 is 95% faster than MySQL 5.6 and 172% faster than MySQL 5.5. I don’t know yet in which circumstances these numbers hold true, but I am sure someone at Percona will soon prove or disprove the claim.
- Performance Schema tables for several aspects:
- …