I am giving a talk in a couple of weeks at the 2010 MySQL User Conference that will touch on use cases for NOSQL tools -vs- More relational tools, the talk is entitled “Choosing the Right Tools for the Job, SQL or NOSQL”. While this talk is NOT supposed to be a deep dive into the good, bad, and ugly of these solutions, rather a way to discuss potential use cases for various solutions and where they may make a lot of sense, being me I still felt a need to at least do some minor benchmarking of these solutions. The series of posts I wrote last year over on mysqlperformanceblog.com comparing Tokyo Tyrant to both MySQL and Memcached was fairly popular. In fact the initial set of benchmark scripts I used for that series actually has been put to good use since then testing out …
[Read more]
I have to admit I'm getting old, and I am now scaringly close to
being a sad old git, and not only that, I'm a database guy also,
and I have worked with SQL based relational databases for more
than 20 years now.
So considering my age and heritage, I really should just dispose
the NoSQL movement as something for those young kids with
earrings and a baseball cap (and to add insult to injury, the cap
is worn backwards) and that any serious database dude like
myself, with my loads of experience (like the invaluable
experience of having run Oracle on a Wang word-processor. Real
valuable stuff I tell you). But no, you will not hear me do that.
But also, you will not hear me say that NoSQL key-value stores
will replace all SQL databases within 5 years (If I worked for an
analyst and was paid dearly to say things like that, I might
have, though. Any takers?).
My take is actually quite simple. The strength of the relational …
Earlier this month, I was at the OpenSourceDays 2010 conference, giving a talk on MariaDB (the slides from the talk are available).
The talk went quite well I think (though I probably talked way too fast as I usually do; at least that means that I finished on time with plenty room for questions..)
There was quite a bit of interest after the talk from many of the people who heard it. It was even reported on by the Danish IT media version2.dk (article in Danish).
Especially interesting to me was to discuss with three people from Danish site komogvind.dk, who told me fascinating details about their work …
[Read more]
I would like to announce a couple of new Tungsten versions
available for your database clustering enjoyment. As most
readers of this blog are aware, Tungsten allows users to create
highly available data services that include replicated copies,
distributed management, and application connectivity using
unaltered open source databases. We are continually
improving the software and have a raft of new features coming out
this year.
First, there is a new Tungsten 1.2.3 maintenance release
available in both commercial as well as open source
editions. You can get access to the commercial
version on the Continuent website, while the open
source version is available on SourceForge.
The Tungsten 1.2.3 release focuses on improvements for
MySQL …
What’s the difference between INT(2) and INT(20) ? Not a lot. It’s about output formatting, which you’ll never encounter when talking with the server through an API (like you do from most app languages).
The confusion stems from the fact that with CHAR(n) and VARCHAR(n), the (n) signifies the length or maximum length of that field. But for INT, the range and storage size is specified using different data types: TINYINT, SMALLINT, MEDIUMINT, INT (aka INTEGER), BIGINT.
At Open Query we tend to pick on things like INT(2) when reviewing a client’s schema, because chances are that the developers/DBAs are working under a mistaken assumption and this could cause trouble somewhere – even if not in the exact spot where we pick on it. So it’s a case of pattern recognition.
A very practical example of this comes from a client I worked with last week. I first spotted some harmless ones, we talked about it, and then we hit …
[Read more]Here is some file IO performance numbers from DELL MD1120 SAS storage array. Last year I did the same test with HP P800 storage array and numbers were impressive. But when it comes to this high end storage array, few surprises. Before getting into actual details; lets see the test stats and configuration details. System Configuration:
DELL [...]
To program is human, to instrument is divine. Complex systems that will support a heavy workload will eventually have to be tuned for it. There are two prerequisites for tuning: tunability, and measurability.
Tunability generally means configuration settings. Adding configuration settings is a sign of a humble and wise programmer. It means that the programmer acknowledges “I don’t understand how this system will be used, what environment it will run in, or even what my code really does.” Sometimes things are hard-coded. InnoDB is notorious for this, although don’t take that to mean that I think Heikki Tuuri isn’t humble and wise — nobody’s perfect. Sometimes programmers set out to create systems that are self-tuning. I’m not aware of any success stories I can point to in this regard, but I can point to plenty of failures. Perhaps I can’t think of any successes because I don’t need to.
Measurability …
[Read more]Our presentation "MySQL, where are you going?" of March 25 at the OpenExpo in Bern is now available in German and English.
When you have missed it, you can download it now from here...
The video recording should be available as well soon.
Our presentation "MySQL, where are you going?" of March 25 at the OpenExpo in Bern is now available in German and English.
When you have missed it, you can download it now from here...
The video recording should be available as well soon.
The Audit API has more uses that you may think! When a statement
is executed in the server, the notification function in this API
will be called, and we can use that do some interesting
things!
Like: Ever wanted to know what the most executed query in your
running system is? I mean the information is in there somewhere,
right, it's just q question of how to get at it? And frankly, I
don't think the queries:
SELECT * FROM user_data WHERE user_id = 57;
and
SELECT * FROM user_data WHERE user_id = 113;
Should count as different queries? I mean, hey, the issue is that
the application may be issuing the same query too many times,
with different arguments mostly, but still the query:
SELECT * FROM user_data WHERE user_id = <somevalue>
Is executed too often? And if so, how can I figure it out? Well,
using MySQL 5.5 with a combination of the Audit Plugin API and
the INFORMATION_SCHEMA API, …