Category Archives: mysql

pmysql (multi-server mysql client)

To have more visibility of our systems I needed a method to quickly query large sets of MySQL servers. Though there are few methods like ‘xargs -P’ and dsh, they are overkill for the SQL-only job, and simply not fast … Continue reading

Posted in mysql | Tagged , | 16 Comments

on primary keys

5.1.46 has this change: Performance: While looking for the shortest index for a covering index scan, the optimizer did not consider the full row length for a clustered primary key, as in InnoDB. Secondary covering indexes will now be preferred, … Continue reading

Posted in mysql, wikitech | 7 Comments

MySQL versions at Wikipedia

More of information about how we handle database stuff can be found in some of my talks. Lately I hear people questioning database software choices we made at Wikipedia, and I’d like to point out, that… Wikipedia database infrastructure needs … Continue reading

Posted in mysql, wikitech | Tagged | 4 Comments

On MySQL replication, again…

There are few things one is supposed to know about MySQL replication in production, as manual doesn’t always discuss things openly. This is small set of rules and advices I compiled (some apply to statement based replication only, but row … Continue reading

Posted in mysql | Tagged | 9 Comments

On hot backups

Few years ago I was looking at crash recovery code, and realized that InnoDB has removed all the comments from the code [this assumption is debunked by Heikki in comments section], related to replay of transaction log. Judging by high … Continue reading

Posted in facebook, mysql | Tagged | 3 Comments

mysql conference talk

Done! Here are the slides: And video:

Posted in mysql | 4 Comments

Opening tables v2!

PMP on demand revealed one of reasons why we’ve been seeing ‘Opening tables’ during proper operations, not just during startup (see my previous post on this topic). We had a thousand or so threads waiting on LOCK_open, and the only … Continue reading

Posted in mysql | 2 Comments

Read ahead…

Mark wrote about how to find situations where InnoDB read-ahead is a bottleneck. What he didn’t disclose, though, is his trick to disable read-ahead without restart or recompile of MySQL. See, there’s no internal “disable read ahead knob”. But there … Continue reading

Posted in mysql | Tagged , | 4 Comments

PMP!

It is a glorious day today – Poor Man’s Profiler (previously introduced here) just got its own website. Do visit it at http://poormansprofiler.org/ – and contribute to better tomorrow.

Posted in mysql | Tagged | 4 Comments

Opening tables!

There’s one bottleneck in MySQL/InnoDB that ultimately sucks. It sucked in 4.0, sucked in 5.0, sucks in 5.1 with newest InnoDB plugin. Opening tables has been a bottleneck on machines that have thousands of tables all the time (as LOCK_open … Continue reading

Posted in mysql | Tagged | 3 Comments