I recently got a message letting me know FreeBSD users will soon be able to install the innotop MySQL and InnoDB monitor through ports. Gentoo GNU/Linux users can find innotop in Portage.
I came across Sphinx today via the MySQL Performance Blog (which has some good entries you might want to check out). It is an Open Source Full Text SQL Search Engine. It can be installed as a storage engine type on MySQL, and from what I hear can beat the pants off of MySQL's built-in full text search in some cases.
From the web site:
Generally, it's a standalone search engine, meant to provide fast, size-efficient and relevant fulltext search functions to other applications. Sphinx was specially designed to integrate well with SQL databases and scripting …
[Read more]I recently published an article on O'Reilly about monitoring tools for MySQL. Of course I believe innotop is the best in its class, so I mentioned it. But I also recently added some features to innotop, and made a stability fix too.
This is the fourth in a series of articles on profiling MySQL. My past three articles have explained how to measure the work a query causes MySQL to do. In this article I introduce a tool I've written to do the work for you and produce a compact, readable report of that work, with all the math already done, and the measurements labelled and grouped for ease of comprehension. With this tool you can understand query performance at a glance.
This is the third in a series of articles on profiling queries in MySQL (the second of two demonstrations of profiling techniques, but the third article overall). In this article I'll present the same example as in the second article, but use a different approach to show details I didn't include.
This is the second in a series of articles on profiling queries in MySQL. In this article I'll demonstrate the technique I described in the first article.
When people discuss query optimization on MySQL, or say a query doesn't perform well, they usually mention execution time. Execution time is important, but it's not the only metric to use (or even the best). There are many other ways to measure the work a query requires. This article explains how to really profile a query -- what to measure, how to do it as accurately as possible, and what it means.
This is the first article in a series. In upcoming articles I'll demonstrate some hands-on profiling with concrete examples, and give you a tool to automate the job.
The comments on my article how to find duplicate rows with SQL made me realize I was simplifying things too much. In particular, I really glossed over the "how to delete duplicate rows" section, which I should have explained in more detail. I hope this article will remedy the omissions.
This article shows how to find duplicated rows in a database table. This is a very common beginner question. The basic technique is straightforward. I'll also show some variations, such as how to find "duplicates in two columns" (a recent question on the #mysql IRC channel).
If you're a programmer, you know the difference between a beginner and a master is the ability to write succinct code that does a great deal with very little work. If you can do this, you can easily raise your productivity and the quality of your work by an order of magnitude. Much more importantly, you can have a lot more fun writing code. Read on to learn how.