Reputation: 325
I am curious if anyone has used any one of the "online schema modification" tools for mysql and what their experience has been.
At this point there seem to be two openark and facebook's osc I have read the doc and from what I can tell they seem to do the exact same thing just in different languages.
I am leaning towards openark right now as it seems much better documented.
Are there others I have missed? Any input on this is much appreciated.
Upvotes: 2
Views: 222
Reputation: 9394
I am author of openark kit -- so I'm biased. Today, there is also pt-online-schema-change from Percona Toolkit. It resembles the openark kit tool more than the facebook tool: it uses synchronous updates onto the "ghost" table being built, rather than asynchronous (as in the facebook tool).
The Percona tool improves on the openark tool in at least two ways I'm aware of: 1. It can handle tables with foreign keys -- to some extent 2. It can take into account the status of replicating slaves, slowing down the process as needed for the slaves to be able to keep up.
I do not know how many installations oak-online-alter-table has. I'm being approached now and then by users of this tool, but have no comparison to make on the numbers. The tool has been around for more than 3 years now on production.
Edit 2016: It's been a long while since last worked on openark-kit
and the oak-online-alter-table
too is stale.
Edit 2016: We've recently released gh-ost, GitHub's online schema migration tool, a modern solution that is triggerless, auditable, controllable, suspendible...
gh-ost
is released to the open source with GitHub's ongoing support. It is well documented. See also the announcement
Upvotes: 1
Reputation: 37770
If it happens to fit your application, for example if you are update- or insert-heavy, you might find that TokuDB is a good fit. One of TokuDB's features is that it can do (with a few small limitations) online schema changes out of the box without resorting to tricks or external tools. Like XtraDB, it's a drop-in replacement for InnoDB, and also adds compression and their cool-sounding (I've yet to try them!) fractal tree indexes.
Upvotes: 0