Just in case you missed the press release:
Oracle Provides Early Access to MySQL 5.6 New Features
At OSCON (the O’Reilly Open Source Convention) in Oregon, Oracle
announced that early access to new features of MySQL 5.6 is
available for the community to test, deploy and provide
feedback. Read more here
There are two sections for rows in the page format for InnoDB
compressed tables. The compressed section has one or more rows
and must be decompressed to access individual rows. The modification log has uncompressed rows and
rows can be accessed without decompressing. The modification log
is used to avoid decompressing and then possibly recompressing
the compressed section on every row change. The buffer pool also
has separate uncompressed copies of some pages so that every row
read does not require a page decompression.
I want to understand when a page must be decompressed or
recompressed. This is definitely an incomplete list.
- A page is decompressed when a row is read and the uncompressed version of the page is not in the buffer pool.
- I think a row can be deleted from the compressed section …
All DBAs understand the importance and priority of quick,
reliable database backup and recovery operations. In fact,
dating back to my early days with MySQL, the most commonly
requested product features from the MySQL user base have been
around online, non-blocking backup solutions for running MySQL
servers. In response, Oracle now provides MySQL Enterprise Backup ("MEB") which performs
high performant, online "hot" backups for MySQL databases.
MEB provides all of the backup/recovery features and
functionality DBAs expect, all from a scriptable command line
interface. You can learn all about MEB in the related
MySQL docs.
My congratulations and appreciation go out to Lars Thalmann and
the MySQL Enterprise Backup engineering team for the …
Hello everyone, here we go for a new blog post and now treating about InnoDB inside MySQL 5.5 and as you should now, this new version uses InnoDB Plugin version 1.1 which one has a lot of new adjustable resources. What most caught my attention was the impressed way that users could adjust it to have [...]
Thanks again to Erin O’Neill and Mike Tougeron for having me at the SF MySQL Meetup last month for the talk on “Understanding Indexing.” The crowd was very interactive, and I appreciated that over 100 people signed up for the event and left some very positive comments and reviews.
Thanks to Mike, a video of the talk is now available:
As a brief overview – Application performance often depends on how fast a query can respond and query performance almost always depends on good indexing. So one of the quickest and least expensive ways to increase application performance is to optimize the indexes. This talk presents three simple and effective rules on how to construct indexes around queries that …
[Read more]I tried to put every subdirectory of InnoDB codebase into a chart that would explain some of relations between subsystems and modules inside the source. This is what I got (click to enlarge):
Update: Check Vadim’s diagram for a more operational view of
InnoDB
Another update: There’s a vector PDF version
The purpose of this post is to describe what covering indexes are and how they can be used to improve the performance of queries. People mostly use indexes to filter or sort the results but not much thought is given to actually reduce the disk reads by using proper indexes. So I will show you how to reduce disk reads and hence improve the performance of queries by utilizing indexes properly.
Vadim and others have pointed at the index->lock problems before, but I think they didn’t good job enough at pointing out how bad it can get (the actual problematic was hidden somewhere as some odd edge case). What ‘index lock’ means is generally the fact that InnoDB has table-level locking which will kill performance on big tables miserably.
InnoDB is a huge pie of layers, that have various locking behaviors, and are layered on top of each other, and are structured nicely as subdirectories in your innodb_plugin directory. Low level storage interfaces are done via os/ routines, then on top of that there’s some file space manager, fsp/, which allocates space for btr/ to live in, where individual page/ entities live, with multiple row/ pieces. There’re few other subsystems around, that got …
[Read more]So, this is a small blog that I felt necessity to do cause I am seeing many tweets on twitter (obviously) talking about that “a rollback query on innodb does not reset the auto_increment counter”. I quickly went test it and really didn’t understand what happened with this user environment, due to it I decided [...]
I’ve done a minor update to the hdlatency tool (get it from Launchpad), it now has a –quick option to have it only do its tests with 16KB blocks rather than a whole range of sizes. This is much quicker, and 16KB is the InnoDB page size so it’s the most relevant for MySQL/MariaDB deployments.
However, I didn’t just remove the other stuff, because it can be very helpful in tracking down problems and putting misconceptions to rest. On SANs (and local RAID of course) you have things like block sizes and stripe sizes, and opinions on what might be faster. Interestingly, the real world doesn’t always agree with the opinions.
We Mark Callaghan correctly pointed out when I first published it, hdlatency does not provide anything new in terms of functionality, the db IO tests of sysbench cover it all. A key advantage of hdlatency is that it doesn’t have any …
[Read more]