This is a good read for anyone who has ever tried
to pivot data from a table in MySQL using client side code like
PHP when you can with some careful query construction do it in
MySQL.
--
Copyright 2006-2008 Andrew Rose [rose.andrew@gmail.com] [andrewrose.co.uk]
I’ve used OfflineIMAP for quite a while now. On the whole I’m fairly happy with it. Today I sent this to the list:
Forgive the potentially bad python, not my native tongue :)
This patch is motivated by three things:
- offlineimap is extremely slow at syncing lots of locally
deleted
messages
- offlineimap uses lots of memory
- LocalStatus files aren’t written safely (a hard crash can
cause
corruption)
- I’ve been
bitten by this in the past, causing a complete resync of
the folder… so I get duplicate messages.
I am currently using 4.0.14 (from Debian) with this patch. I used
it to
convert the files and everything. Seems quite reliable and quick.
In my tests, execution time for a normal sync is relatively the same.
Execution …
[Read more]Having taken a look at the 35 MySQL Summer of Code applications, I can now say that we have several very strong applications, such as:
- IPv6: Enabling MySQL to connect over IPv6 internet
- MySQL Based Atom Store (storing Google GDATA in MySQL)
- Test case development / Load testing
- Test suite development
- MySQL Auditing Software
- The “anti-profiler” - a performance analysis tool for database engines
For several of the above, we have multiple good applications. The applicants come from recognised universities across the world, not just the US and Europe. Some have extensive experience from professional software development. Sadly, we will end up having to reject several …
[Read more]
That's right! Today, 2 years ago, I started my job as Support
Engineer at MySQL! Ups, and downs along the way, but hey, what
love relation doesn't have that! Great Company!
To celebrate it I was given the opportunity today to give an
online web presentation about MySQL Performance Tuning Best
Practices. I'm used to give such seminars, getting better each
time. But with this one, there were 2 problems: I was nervous
because I couldn't see the people, and second: it was in Dutch!
Although my mother tongue, I don't talk it everyday. And surely
no technical terms. I put some German words in there as well I
think, hehe..
That's right! Today, 2 years ago, I started my job as Support
Engineer at MySQL! Ups, and downs along the way, but hey, what
love relation doesn't have that! Great Company!
To celebrate it I was given the opportunity today to give an
online web presentation about MySQL Performance Tuning Best
Practices. I'm used to give such seminars, getting better each
time. But with this one, there were 2 problems: I was nervous
because I couldn't see the people, and second: it was in Dutch!
Although my mother tongue, I don't talk it everyday. And surely
no technical terms. I put some German words in there as well I
think, hehe..
I just filed a bug regarding slow queries executed by replication thread are not being logged to the slow query log.
This is not a big deal but it is ugly little gotcha which I think few people know about. It is especially bad if you're using tools to analyze slow query log to find what queries take up the most resources on your server - in certain configurations replication load itself may be very significant contributor.
But even if you do not, as I wrote in the bug report it is quite handy to have this information our where as query times on master and slave can be different in a lot of circumstances.
One more thing to consider - slow replication queries also identify replication lag, ie if you have query which ran 10 seconds on the slave and …
[Read more]In a heavily webbed, automated, interconnected world with most data stored on relational databases, we can sometimes forget that there are indeed many situation where you simply want to FTP a file from one place to another.
That process in itself holds many dangers as I pointed out to someone on the forum today. Let me re-cap that post here on the blog…
Suppose your files are coming in using FTP to a local directory.
A file is being written, let’s call it
FILE_20070328.txt.
Now, in advance you don’t know the size of that file. Let’s say
it’s 10MB and takes 30 seconds to FTP.
In your transformation you detect this file and start working.
Chances are very high that you’ll be reading an incomplete
file. (See also this
technical tip on variables and file handling)
There are 2 ways to …
[Read more]Thanks to a gift from MySQL AB, I'll be attending the MySQL Conference & Expo 2007. I presented at the 2005 conference, and found the conference itself to be pretty educational. Plus the food is generally pretty good at the O'Reilly conferences. Of course the real reason people to conferences is for the swag. Now this year's PyCon had some pretty good swag; I got at least six free T-shirts and two Rubik's cubes. So top that.
mysql doesn?t
have quite the number of fancy internal applications that you
might suspect, and i got frustrated when the company started to
roll out a system of monthly time-off reports based on emailing
around an excel spreadsheet. (to add icing to that cake, they
kept sending out the excel sheet with password protection!)
last friday, i spent an afternoon cooking up this
little proof-of-concept application that tracked the same
information as the spreadsheet, but in tasty web format, with
some ajax goodness (courtesy of prototype).
as it turns out, there was an official company tool for doing
this that was in the works, but they hadn?t bothered to let
anyone know it was imminent. i?m told it is …
In my recent work I had to dive into the Internals of the MySQL protocol.
Most of the protocol is described in Chapter 8. MySQL Client/Server Protocol.
"Most" as it documents the state of MySQL 4.1.x before it was
stable. It is interesting for all developers who want to extend
the mysql-server or want to write a native
connector to MySQL which isn't using
libmysqlclient.
Note: the protocol definition and the derived work at released under the terms of the GPL. See 8.1. Licensing Notice
Connection States
The MySQL protocol has two phases: auth and …