2010 was a good year for implementing many small feature
requests. Lets start by thanking those responsible for requesting
these enhancements: Matt Lord, Mikiya Okuno, Matthew Montgomery,
Mark Callaghan, Domas Mituzas and Mats Kindahl.
MySQL 5.6 has lots of big and shinny new replication features. In
fact some, like global transaction identifiers or multi-threaded
slave, are multiple features together under one big headline.
Therefore, they get a lot of buzz and since they are complex,
game-changing and very exciting to the end user, they deserve a
lot of blog posts. But what about other smaller enhancements that
are in 5.6 but that do not get so much highlight?
Let me present a few that I think are particularly interesting,
especially for monitoring and/or configuration purposes. To get
more details, click on the links and they will take you to the
feature requests or worklog entries. 1. …
At this month’s Back Bay LISA, Matt Simmons (aka Standalone Sysadmin) set up Lightning Talks. There were 9 presentations, and the videos are up! The playlist is on YouTube but here is a list of all the videos, with the descriptions taken from Matt’s blog post:
Back Bay LISA Lightning Talks
April 2013
Percona Server with TokuDB
I was excited to see that TokuDB for MySQL from Tokutek is now open source. I believe this is a great technology and it was a significant restriction on the adoption when it was distributed only in a binary format with a proprietary license.
So I went and built Percona Server 5.5.30 with TokuDB’s storage engine. This is an experimental build and I am just going to play with it. The build procedure is somewhat complicated and confusing and this stage, so I want to share it with the entire MySQL community in case you want to try it out for yourselves.
It’s available from our …
[Read more]This morning I watched Tomas Ulin’s Keynote at Percona Live: MySQL Conference and Expo, delivered yesterday. I missed this live as I am not at Percona Live (I am on a conference hiatus from March through September for personal reasons). As far as the technical content in it, there have been a few posts about the Hadoop Applier and MySQL 5.7, so there’s not much of a need to delve in there.
Message #1: Failure
I was impressed that Ulin spoke of failure. Around 7:27 in the
video above, Ulin says, “We really failed with 5.0,” and “even
5.1 we weren’t fully and back on track when we released.” He
spoke about the new way MySQL 5.5 and 5.6 were engineered, a
hybrid agile/milestone development cycle. There are some hidden
messages here:
Hidden Message #1: Oracle is a great steward for …
[Read more]Continuing on from yesterday, the biggest news that I’ve noted in the past 24 hours:
- The commitment from Oracle’s MySQL team to release a new GA about once every 24 months, with a Developer Milestone Release (DMR), with “GA quality” every 4-6 months. Tomas Ulin announced MySQL 5.7 DMR1 (milestone 11) [download, release notes, manual]. He also announced MySQL Cluster 7.3 DMR2 [download, …
In our last 5.5 series release of Percona Server, we included a regression in the RPM packaging that prevented the server from restarting following an upgrade — instead, the server would remain stopped after the upgrade was completed regardless of its state before updating. This caused some problems for some users, especially if automatic upgrading was configured on machines with running database servers.
We’ve now fixed it and re-released to …
[Read more]I ran across this gem recently on StackOverflow:
$queryxyzzy12=("SELECT * FROM visitorcookiesbrowsing ORDER by id ASC"); $resultxyzzy23=mysql_query($queryxyzzy12) or die(mysql_error());
while($ckxf = mysql_fetch_assoc($resultxyzzy23)){ $querycrtx=("SELECT * FROM cart WHERE userkey='$ckxf[usercookie]' ORDER by datebegan DESC"); $resultcrtx=mysql_query($querycrtx) or die(mysql_error());
I ran across this gem recently on StackOverflow:
$queryxyzzy12=("SELECT * FROM visitorcookiesbrowsing ORDER by id ASC");
$resultxyzzy23=mysql_query($queryxyzzy12) or die(mysql_error());
while($ckxf = mysql_fetch_assoc($resultxyzzy23)){
$querycrtx=("SELECT * FROM cart WHERE userkey='$ckxf[usercookie]' ORDER by datebegan DESC");
$resultcrtx=mysql_query($querycrtx) or die(mysql_error());
------ snip ------
}
Besides the interesting variable names used, it’s also doing a query inside a loop, which is very inefficient. This would be better written as a single JOIN query:
SELECT
v.*,
c.*
FROM
visitorcookiesbrowsing v
LEFT JOIN cart c ON c.userkey=v.usercookie
ORDER BY
v.id ASC,
c.datebegan DESC
The details of JOIN vs. LEFT JOIN depend on the actual intent of the code, which wasn’t apparent from the snippet.
If at …
[Read more]We are pleased to announce the release of Zmanda Recovery Manager (ZRM) Community Edition 3.0 (Beta). This release features support for parallel logical backups as an additional full backup method, which is made possible by integrating with the mydumper open source project. This backup method represents a faster, scalable way to backup large databases. The mysqldump (single threaded logical backup) support is still available for backing up stored procedures/routines. ZRM Community Edition allows you to create multiple backup sets with different backup methods and policies; so, now you can do MySQL database backups with mydumper, as well as mysqldump in the same server.
We have also made many additional improvements and bug fixes since our earlier 2.2 release. We currently plan to release a …
[Read more]