Yesterday, I got some material being a speaker at this year’s big conference. Included was a discount code for “Friends of Speaker” which gets everyone a 25% discount on the conference pass.
mys10fsp
See you in Santa Clara!
Yesterday, I got some material being a speaker at this year’s big conference. Included was a discount code for “Friends of Speaker” which gets everyone a 25% discount on the conference pass.
mys10fsp
See you in Santa Clara!
I will be speaking at this year’s MySQL
Conference, thanks to the conference team to approve my
proposals. Like last year, I will deliver a full day tutorial
to prepare anyone for the DBA certification which you can attend
during the conference for a very discounted rate.
Yes, I’ve started yet another blog. You think I would learn.
This time it’s bout MySQL. The database we …
The aims of this kind of blog post is simple – I want to help keep the masses informed as to what’s happening with MariaDB, as a whole. There is a community growing, and MariaDB is a community project, not necessarily a Monty Program Ab baby (and we’re clear on this distinction: think of it like Canonical/Ubuntu). So, think of it as such that I’m sharing the good news, and summarising what’s been happening, to save you time.
MariaDB added to the Debian/Ubuntu wishlists
One of MariaDB’s goals is that it should be easily available for
download. While we provide binaries and source at the MariaDB download page, we would love to see
the binaries sitting in Linux distributions. So it is definitely
good to see that it is on …
The headline is flame-bait, don’t take it. I just wanted to point something out about character sets and collations in MySQL.
To the uninitiated, it may seem overwhelming. Everything has a character set! Everything has a collation! And they act weirdly! The server has one. The database has one (oh, and it changes magically as I USE different databases.) Every table has one, and columns too. Is that all? NO! My connection has one! Kill me now!
Relax. In truth, only one kind of thing actually has a charset/collation. That is values. And values are stored in columns. The only thing that really has a charset/collation is a column.[1]
What about all the rest of those things — connection, database, server, table? Those are just defaults, which determine what charset/collation a value gets if it isn’t overridden. So if the table’s default charset is utf8, and you add a column without saying what …
[Read more]I say correct because there are several incorrect approaches to managing MySQL logs. In MySQL you have two important log files, the MySQL error log (configured with –log-error) and the MySQL slow query log (configured with –log-slow-queries or –slow-query-log and –slow-query-log-file which is available …
[Read more]I’ll be helping Morgan Tocker deliver the second half of his training course for MySQL Developers/DBAs in New York City in a few days (more Percona training). It was a snap decision at the last minute, but I’m hoping I’ll still get to meet some folks there. If we’ve corresponded over email or blog comments and you would like to get together, ping me in the comments here! If you’re in the New York City area and you use MySQL, you should consider attending this course, too.
Cary Millsap has a concise, readable paper on performance. Anyone involved in database performance optimization should read it. Cary’s writing has heavily influenced the mk-query-digest tool for analyzing MySQL/PostgreSQL/Memcached/HTTP query performance, and I think you’ll get a lot more from mk-query-digest if you read this paper — and you should also read his book, reviewed here. It’s one of the top books on my Essential Books List.
Related posts:
I'll be giving 2 talks this year. Here's a quick
description:
Want Faster Queries?
Fixing slow queries is often very easy if you know what to look
for and it can give huge performance gains. In this talk I'll
cover common SQL mistakes, how to identify "bad" queries,
indexing techniques, using EXPLAIN to verify execution plan,
etc.
Get your Replication on: Advanced Techniques, Tips
and Tricks
I'll be co-speaking with Chris Schneider for this one! We have
lots of interesting uses for replication and some best practices
up our sleeves. Warning: we won't be covering how to set up basic
replication - that's a prerequisite for this talk.
It was asked in the previous post whether or not there would be
better async support in MySQLdb-2.0. The answer is a qualified
yes.
libmysqlclient (the MySQL C client library) has blocking calls,
and doesn't have a true async interface. In a nutshell, the three
blocking calls that are most important are mysql_query(),
mysql_store_result() or mysql_use_result(), and mysql_fetch_row()
(sometimes).
The original design of MySQLdb uses mysql_store_result(), which
stores the entire result set in a MYSQL_RESULT structure; in this
case, mysql_fetch_row() does not block. To save memory, the
result is immediately converted to Python types and then
freed.
An alternative cursor implementation (SSCursor) uses
mysql_use_result(), which does not internally buffer the result
set; this does cause mysql_fetch_row() to block, however. A
further complication is that no new queries can be issued on the
connection until the entire result set has been …