Community journal

The latest from the MySQL community

Ideas, releases, practical guides, and perspectives from the people building with MySQL.

Follow the feed
Showing entries 36571 to 36580 of 45496 « Previous | Next »
MySQL 5.0.51 uploaded to Debian

Yesterday in the evening I uploaded MySQL 5.0.51-1 to Debian unstable. Unfortunately it took a bit longer to prepare the updated package than expected, mainly because 5.0.51 was not MySQL's best release, and I had to backport and include some fixes from 5.0.52 and 5.0.54 to get it working (see the changelog for details). Then I had to wait a few more days until 5.0.45-5 got into testing before I could finally upload 5.0.51-1 to unstable.


The most important changes are:

  • Testsuite is now enabled during build process, which requires some time, but it ensures that everything is fine with the build. I already found two gcc 4.2.x related bugs in 5.0.51 which were fixed before 5.0.51-1 was uploaded to Debian.
  • Manpages re-added, MySQL AB has put them under the GPL so we could include …
[Read more]
Commodity Hardware (Disk and the Performance Myth)

I have been out on several client sites over the last 3-4 months and the one thing that I see time and time again is the proliferation of commodity hardware. Not only are smaller servers popping up all over the place, but these servers are getting more and more powerful. Now you can not order hardware without getting dual or quad core machines with the capability to run a 64 bit OS. The machines built 2 or 3 years ago are nothing more then ebay fodder now. Items that end up collecting dust in a back room some where. Look at the evolution that we have gone through. Since 2005 look at what has become affordable in the commodity space: we have got dual core AMD&Intel, quad core Intel, AMD Opterons, 64bit processing, and a slew of chipsets and manufacturing processes in between. Cache on these processors has jumped from 512KB to 8MB in some cases. Not only has the processor seen marked improvements, so has the architecture on the motherboard. The …

[Read more]
Fixing column encoding mess in MySQL

Just had an interesting issue with an encoding mess on a column containing non-ASCII (Russian) text. The solution was not immediately obvious so I decided it's worth sharing.

The column (actually the whole table) was created with DEFAULT CHARSET cp1251. Most of the data was in proper cp1251 national encoding indeed. However, because of web application failure to properly set the encoding, some of the rows were actually in UTF-8. That needed to be fixed.

Simply using CONVERT(column USING xxx) did not work because MySQL treated the source data as if it was in cp1251. One obvious solution would be to write a throwaway PHP script which would SET NAMES cp1251, pull the offending rows (they'd come out in UTF-8), iconv() them to proper cp1251, and UPDATE them with new values.

However it's possible to fix the issue within MySQL. The trick is to tell it to treat the string coming from the table as binary, and then do charset …

[Read more]
WordCamp Melbourne: making money with Wordpress, bbPress, caching, Wordpress Sandbox

On November 17 2007, I went to the inaugural WordCamp Melbourne. It was a truly interesting event - crowded, filled to the brim, and held at the pretty amazing Watermark Bar, in Docklands. It was a really warm day, and the only complaint would be that Watermark put is in a glass dome, with only 2 fans and no air-conditioning - nice, greenhouse we were in! Food and drink were good, as were the talks in general. I took some notes, and am placing them online now (late, but better than never). Note that the event was sold out - so kudos to James Farmer for organising it.

Making money with Wordpress - Darren Rowse

- exclusive content, for a paid area (like forums?)
- textlinkads/paid links/paid reviews - nasties from Google, so this can be an …

[Read more]
Multi-delete libmemcached, it is all about the pipe lining...

So what happens when you pipe line a bunch of data into a socket?

Much better performance:

Testing mdelete_generate 1.542 [ ok ]
Testing delete_generate 5.720 [ ok ]

The theory in all of the re-factoring I have done for the next version of libmemcached is to allow me to pipe line more data into a socket. AKA, operations that can be packed into a single TCP payload should be. This allows me to make much better use of the network.

I've had support for this for get since nearly the beginning:

Testing get_read 6.848 [ ok ]
Testing mget_read 2.786 [ ok ]

It has always made a big difference in performance. Delete is just the first operator, next on this list is all of the storage operators (set, add, cas, and replace).

BTW the key to making the multi-delete operations work? Re-factoring.

The more time I spend on making …

[Read more]
Create aliases to make MySQL administration easier
The Art of Innovation - Guy Kawasaki

The 2008 MySQL Conference & Expo is nearing, and I’ve still got unpublished notes from the 2007 conference! In a way, its a good thing - too much was published during conference time, its hard to keep track. Here comes my notes from a superb keynote by Guy Kawasaki, titled The Art of Innovation, presented at the MySQL Conference & Expo 2007.

… on Apple
- “Back then, sexual harassment was a good thing”
- Apple allowed first class travel as long as you worked for Steve back in the day :-)

… on being a/pitching to a VC
A good test for entrepreneurs is: “Are you using MySQL”. Guy’s a VC, he likes you to use cheap, highly available tools.

Make meaning - don’t go to a VC and say you want to make money. It means you’ve attracted the wrong …

[Read more]
Just to confuse you...

Take a look at these two numbers:


CREATE TABLE my_table (
number_1 BIGINT(4),
number_2 INT (10)
);


Which one do you think takes up less space? The answer is that BIGINT always takes 8 bytes and that INT always takes 4 bytes. The value in the parenthesis has nothing to do with storage. The only use I am aware of that it has, is with the ZEROFILL feature (which I never use):


mysql> CREATE TABLE a (a INT(5) ZEROFILL);
Query OK, 0 rows affected (0.16 sec)

mysql> INSERT INTO a VALUES (1);
Query OK, 1 row affected (0.03 sec)

mysql> SELECT * FROM a;
+-------+
| a |
+-------+
| 00001 |
+-------+
1 row in set (0.00 sec)


It seems that there are a lot of open source packages with INT(4) (or similar). If you only need 4 digits, you …

[Read more]
erlang and MySQL Cluster


Ok, in case you just showed up going “finally!”, I’m sorry to let you down - I haven’t yet ported NDB API to erlang.

But I should - and I want to.

Brian was just talking about concurrent program and mentioned erlang. Turns out that when I was starting off working on the NDB/Connectors, Elliot asked me if I’d considered erlang. Always up for learning a new language I did a quick check, but there were no swig bindings, so I put it off until later.

Then later came and I still hadn’t written any code, so I found a book online and started reading. I have to say erlang is very cool.

There is no way on earth I can wrap the NDB API in any meaningful way using erlang. However, I might be able to reimplement the wire protocol in erlang and have the resulting thing be way more stable and scalable. Thing is - it really made me …

[Read more]
Program Unveiled for 2008 MySQL Conference & Expo -- Registration is Now Open!

Registration is now open for the sixth annual MySQL Conference & Expo. Co-presented by MySQL AB and O'Reilly Media, the conference will take place April 14-17, 2008, in Santa Clara, California. The event is expected to bring together over 1,600 open source and database users from some of the most exciting and fastest-growing companies in the world, as well as from the large and active MySQL Community. The program for 2008 will include keynote presentations by Jacek Becla of Stanford Linear Accelerator and MySQL CEO Marten Mickos.

More information is available at www.mysqlconf.com.