It's again that time of the year. Analysts are spending oceans of
words to predict the future, companies are making plans for the
next year and people are resting and enjoying the break with
their families. To me, this is the perfect time to reflect on my
choices, the direction I'm headed to and consider if I still love
what I do.
At the beginning of the year I decided to
join MongoDB (formerly 10gen). The more I
think about it, the more I realize I've been wrong. Yes, it's
been the worst decision in my life not to join MongoDB when I was
first offered the opportunity years ago. At that time an
insightful friend asked me to consider the opportunity. At that
time I didn't see what I see today.
I didn't see the …
The latest from the MySQL community
Ideas, releases, practical guides, and perspectives from the people building with MySQL.
In my last post, a tale of two MySQL upgrades, a few folks asked if I would outline the process we used to upgrade, and what kind of downtime we had.
Well, the processes were different for each upgrade, so I will tackle them in separate blog posts. The first step was to upgrade all our MySQL 5.1 machines to MariaDB 5.5. As mentioned in the previous post, MariaDBs superior performance for subqueries is why we switched and we switched back to MySQL for 5.6 to take full advantage of the performance_schema.
It is not difficult to blog about our procedure, as we have documentation on each process. My first tip would be to do that in your own environment. This also enables other folks to help, even if they are sysadmins and not normally DBAs. You may notice the steps contain items that might be obvious to someone who has done maintenance before we try to …
[Read more]At the beginning of 2013, Mozillas MySQL databases were a mix of MySQL 5.0, Perconas patched MySQL 5.1, Perconas patched MySQL 5.5 and MariaDB 5.5. MySQL 5.1 was released in November 2008 so at the beginning of the year, we still had databases with no new major features in 4 years. Currently we have almost all our databases at Oracle’s MySQL 5.6 — the only stragglers are our cluster running TokuDB and a few machines that are no longer in use. Heres a graph showing the state of our machines you can see that in the first half of the year we concentrated on upgrading our 5.0 and 5.1 servers to 5.5, and then in the second half of the year we upgraded everything to MySQL 5.6 (click on the image to get the .png file):
…
[Read more]Within MySQL, there’s a piece called a storage engine that reads and writes to disk on your behalf when you execute a query. It controls the way that your data is stored on disk. With MySQL, you can change what storage engine you use, which is helpful since every engine has different advantages and downsides, and you can select which engine to use based on your workload. There are two main engines: MyISAM and InnoDB. MyISAM was the default engine before MySQL 5.5 and it’s been there since the beginning. It’s also not crash-proof, it doesn’t have foreign keys, and it’s not transactional. InnoDB, on the other hand, has all these features.
What happens if you use MyISAM
No Safety Belt
Grooveshark (a popular music site) in …
[Read more]Yesterday we had our third Madrid MySQL users group meeting. That was quite interesting. Thanks go to Juan for his presentation.
We plan the next meeting on January 16th after the New Year is out of the way. If you are interested in MySQL and happen to be in Madrid please consider coming to see us.
More information about the next meeting can be found on the group’s web page. Note: The meeting will be in Spanish. I look forward to seeing you.
Translating theory to practice is never easy. Morgan gives us the right steps in a play environment to move from dev.mysql.com native MySQL rpm’s to the new MySQL yum repository. I thought I would try it out.
1. Confirming existing packages
A necessary step, however immediately I have more dependencies including Perl DBD (used in several utilities) including MHA.
$ sudo su - $ rpm -qa | grep -i mysql MySQL-devel-5.6.13-1.el6.x86_64 MySQL-test-5.6.13-1.el6.x86_64 MySQL-shared-compat-5.6.13-1.el6.x86_64 MySQL-server-5.6.13-1.el6.x86_64 perl-DBD-MySQL-4.013-3.el6.x86_64 MySQL-client-5.6.13-1.el6.x86_64 MySQL-embedded-5.6.13-1.el6.x86_64 MySQL-shared-5.6.13-1.el6.x86_64 mha4mysql-node-0.54-1.el5.noarch
A further trap in the more complex real-world environments, in my case the installation of Percona …
[Read more]I was really pleased to see the announcement by Oracle MySQL yum repositories that they have now produced a yum repository from where the MySQL RPMs they provide can be downloaded. This makes keeping up to date much easier. Many companies setup internal yum repositories with the software they need as then updating servers is much easier and can be done with a simple command. For many people at home that means you set this up once and don’t need to check for updates and do manual downloads, but can do a quick yum update xxxx and you get the latest version. Great! This new yum repository only covers RHEL6 did not include RHEL5 which is not yet end of life and still used by me and probably quite a lot of other people. I filed bug#70773 to ask for RHEL5 support to be …
[Read more]I was playing around with MySQL Workbench earlier in the week, and ran across the “clean up SQL” feature, which I thought was neat. Here’s a picture-based demonstration – you can click on the pictures to make them bigger, so … Continue reading
Character sets are like the force: they surround us and penetrate us, binding all our digital world together. A character set is how we convert the 1’s and 0’s that the computer understands into human-readable characters like ABC. In one of the first character sets, ASCII, the number 97 is translated to “a” and 63 is the question mark (?).
“Are there other languages besides English?”
“Don’t think so, Bob.”
English-Only Please
The trouble with ASCII is that it was created back in the ‘60s by a bunch of Americans and they were not thinking about French or German, they were thinking about English. Guess what? ASCII works great for American English, but there’s no way it can encode even Spanish, let alone something like Chinese, so it only met the needs of around 5% of the world …
[Read more]One day, after taking a job using MySQL, I was writing a query quietly at my desk. It was around quittin’ time, and I was whipping up a new report on the monthly sales figures that the CEO needed for his board meeting in the morning. I, in my ignorance, wrote a nice query with a simple little sum() function. What I did not realize is this caused all my rows to sum up to one row when it really should’ve show several rows. This made my report completely inaccurate. Blindly trusting me as I had blindly trusted MySQL, the CEO presented my report to the board who decided that the company was grossly unprofitable and voted to shut it down. Only when I was waiting in the bread line at my local workhouse did I realize my mistake.
Okay, so that’s totally made up. Mostly. I caught the error …
[Read more]