NSFW (audio) “…pipe your data to /dev/null – it will be very fast.” “Does /dev/null support sharding?” NSFW (audio) “…the only thing constructive we could have used their source files for was as random keys for SSL certs.” NSFW (audio) “PHP reeks … Continue reading →
5 Older Entries »
A special extended edition of Tech Messages for 2011-02-10 through 2011-03-07:
Nicholas Piël » Benchmark of Python Web
Nicholas has done an in-depth benchmarking of several WSGI servers in an effort to document their differences. He takes into account the type of server and which version of HTTP it supports.
My 10 favourite Programming Quotes |
If debugging is the process of removing software bugs, then programming must be the process of putting them in. – Edsger Dijkstra
- VMware vCloud Director …
Bug reports can be fun. They can also be terrible. Either way they can be entertaining. On the Drizzle IRC channel today I saw a couple references to MySQL bug reports: it is stop working and Does not make toast (which reminds me of the Mozilla bug report about the kitchen sink). Got any other favourites1?
1 This one’s for Jay.
- What are your favorite MySQL replication filtering rules?
- My new favorite comic: The Adventures of …
If you’re like me, you’ve gotten tired of writing endless test cases for parsers that can understand the thousands of variations of text output by SHOW INNODB STATUS. I’ve decided to solve this issue once and for all by patching MySQL and InnoDB to output XML, the universal markup format, so tools can understand and manipulate it easily. Here’s a sample snippet:
<status><![CDATA[ ===================================== 100320 15:46:24 INNODB MONITOR OUTPUT ===================================== ... text omitted, but you get the idea ... ]]> </status>
PS: Yes, this is a late April Fool’s joke.
- Don’t forget about SHOW PROFILES It seems t
In an application such as a database server, instrumentation is like sex: it’s not enough to know how often things happen. You also care about how long they took, and in many cases you want to know how big they were.
“Things” are the things you want to optimize. Want to optimize queries? Then you need to know what activities that query causes to happen. Most systems have at least some of this kind of instrumentation. If you look around at… let’s not pick on the usual targets… oh, say Sphinx, Redis, and memcached. What metrics do they provide? They provide counters that say how often various things happened. (Most of these systems provide very few and coarse-grained counters.) That’s not very helpful. So I read from disk N times, and I read from memory N times, and I compared rows N times… so what? I still don’t know anything relevant to execution time.
That’s why we need to measure how long things took. It’d be …[Read more]
This is the 182nd edition of Log Buffer, the weekly review of database blogs. Make sure to read the whole edition so you do not miss where to submit your SQL limerick!
This week started out with me posting about International Women’s Day, and has me personally attending Confoo (Montreal) which is an excellent conference I hope to return to next year. I learned a lot from confoo, especially the blending nosql and sql session I attended.
This week was also the Hotsos Symposium. …[Read more]
Someone recently posted this to an email list as a sample of an interesting SHOW INNODB STATUS output:
mysql> SHOW ENGINE INNODB STATUS\G _______ _______ |\ /|( ____ \( ____ \ | ) ( || ( \/| ( \/ | | | || (_____ | (__ | | | |(_____ )| __) | | | | ) || ( | (___) |/\____) || (____/\ (_______)\_______)(_______/ _______ _______ _______ _________ _______ _______ _______ _______ ( ____ )( ___ )( ____ \\__ __/( ____ \( ____ )( ____ \( ____ \ | ( )|| ( ) || ( \/ ) ( | ( \/| ( )|| ( \/| ( \/ | (____)|| | | || (_____ | | | | | (____)|| (__ | (_____ | _____)| | | |(_____ ) | | | | ____ | __)| __) (_____ ) | ( | | | | ) | | | | | \_ )| (\ ( | ( ) | | ) | (___) |/\____) | | | | (___) || ) \ \__| (____/\/\____) | |/ (_______)\_______) )_( (_______)|/ \__/(_______/\_______)
I thought it was …[Read more]
WARNING: nearly every word of this post is intentionally false. This is an April Fool’s joke.
There is so much misinformation out there about how MySQL works. If you’ve talked to someone from PostgreSQL, you’ve surely heard some of it: “MySQL doesn’t even have transactions,” for example. And this from a PostgreSQL user, who uses a database that doesn’t even run on Windows.
But even within the ranks of people who supposedly know MySQL’s workings, lots of people just get things dead wrong. I wanted to set the record straight here, so I thought I would give a little walk-through of how MySQL executes a query.
Let’s see it in action from start to finish.
SELECT SQL_NO_CACHE COUNT(col1) FROM users WHERE userid IN( SELECT userid FROM othertbl ) ORDER BY userid DESC;
The steps to execute this query are as …[Read more]
If you are a programmer, you, by definition, belong to the elite [awesome] human breed called geeks. If you know how to code in Python or Ruby, you might even think you’re pretty hot shit. But none of that compares in hotshitness to what you are about to learn.
Allow me to introduce LOLCODE – perhaps the most serious and, for some, cryptic, programming language. It is Turing-complete and uses an advanced compiler called Brainfuck (I’m still totally serious, and by the way if you’ve never heard of LOLCATS, then you’re not spending nearly enough time on the Internets. See the funny button that looks like a cross at the …[Read more]
I follow only a few comics in my feed reader: Get Fuzzy, Dilbert, XKCD, and now The Adventures of Ace, DBA. It’s kind of XKCD-ish, only it’s about Oracle and it doesn’t have the extra punch line when you hover your mouse over the picture. And it’s proof that a DBMS (even one I don’t use) can be pretty damn funny.
5 Older Entries »