A
I’ve had a lot of feedback from my resignation at MySQL. A lot positive, a lot of shock, even some avid discussion on why, and trying for me to reconsider my decision. Roland my evil twin (it’s a funny story), really challenging me which I very much appreciated, ensuring I had considered the multiple paths before me. I am a man of my own convictions, so reversing my decision was simply not an option on principle.
So what do I want in an ideal working environment. What was lacking, that I could not see and that I’m seeking. Here are two key points.
- “Continual improvement, 1% a day, review in 3 months.” This includes a commitment from the entire team, and a system to contribute, discuss, plan and see results. Something I’m a most firm believer of and will be ensuring is in place in my next position where I will have the responsibility.
- “Your employees are …
I frequently see a question fly past on why an expression like
WHERE col = NULL does not come up with the desired result,
even though it superficially looks perfectly sane. To address
this, we can recap some high school maths, and at the same time
finally find out that some things learnt there are actually very
practical and useful later in life... I mean, who would have
guessed that learning about sets and Venn
diagrams was really giving you the fundamentals of relational
databases?
So anyway, the proper form would be WHERE col IS NULL.
NULLs can't be compared in the normal way, because NULL is not a
value. NULL is the absence of a value. If you show this
visually, the domain of valid values for a column lies inside the
circle of a Venn diagram, while the NULL is outside. It's not a
member of the domain.
There are also other functions …
What MySQL honestly was never good at is giving good helpful error messages. Start with basics for example - The error message in case of syntax error gives you information about tokens near by but little details:
PLAIN TEXT SQL:
- mysql> SELECT * FROM user oder BY pwd;
- ERROR 1064 (42000): You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near 'by pwd' at line 1
It would be much better if MySQL would give error give exact position of error (with complex auto generated queries line number is often not good enough) as well as give some better explanation on what is wrong.
The new parser for MySQL was spoke since 5.0 times but it never took off and I'm not seeing it on public road map either.
Though this is just tip of the iceberg of not so helpful or misleading error messages. …
[Read more]Maatkit contains essential command-line utilities for MySQL, such as a table checksum tool and query profiler. It provides missing features such as checking slaves for data consistency, with emphasis on quality and scriptability.
This release contains major bug fixes and new features. Some of the changes are not backwards-compatible. It also contains new tools to help you discover replication slaves and move them around the replication hierarchy.
Changelog for mk-archiver: 2008-03-16: version 1.0.8 * Added --setvars option (bug #1904689, bug #1911371). * Added --charset option (bug #1877548). * Changed short form of --analyze to -Z to avoid conflict with --charset. Changelog for mk-deadlock-logger: 2008-03-16: version 1.0.9 * Added --setvars option (bug #1904689, bug #1911371). * Added 'A' part to DSNs (bug #1877548). Changelog for …[Read more]
I found this interesting article that talks about things to look
for in a programmer which I think is also suitable for a
DBA.
http://blogs.techrepublic.com.com/10things/?p=319
Found this today: Windows Core Networking : WSAPoll, A new Winsock API to simplify porting poll() applications to Winsock.
Which means we should be able to squeeze some peformance out of Vista. Although, since poll() we’ve gone and moved on to much better things in the free world.
As part of porting MySQL Cluster to Microsoft Windows platforms, I’m going and redoing a lot of the portable sockets code in MySQL. My goal is to have enforcing of proper use of the portable functions be done by the compiler instead of the programmer - leading to less portability bugs.
Let’s face it: friends don’t let friends have to run Windows to not break the Windows port.
Good news is that so far I’ve found several bugs that could have presented them in real nasty ways at run time but have instead showed up as build errors - …
[Read more]... or how to safely run data manipulation statements in your database.Reading posts on Devshed's forums I sometime notice people doing maintenance work on their data without any safety net apart from occasional ages old backups ;-).Anyway I think there's no need for a restore if you just issued the wrong update query, I mean, transactions are here for this, it's just a matter of educating people
Maatkit contains essential command-line utilities for MySQL, such as a table checksum tool and query profiler. It provides missing features such as checking replicas for data consistency, with emphasis on quality and scriptability. This release contains major bug fixes and new features. Some of the changes are not backwards-compatible. It also contains new tools to help you discover replication replicas and move them around the replication hierarchy. Changelog for mk-archiver: 2008-03-16: version 1.