I've just finished packaging up version 0.4 of the memcached
engine for MySQL.
What is new:
* Added support for packed rows (uses less memory).
* Fixed support for IN() operations.
* Fixed bug in UPDATE when ORDER BY was given.
http://download.tangent.org/memcache_engine-0.4.tar.gz
Hurry up, submit a paper! The LinuxTag Call for Papers ends tomorrow, February 16th.
Short info about LinuxTag from the homepage:
LinuxTag 2007 opens doors from May 30 to June 2, 2007 on Berlin Expo Center under the Funkturm. We invite users and experts to learn at Europe’s leading conference and expo more about the potential of Linux, Open Source, and Free Software.
Today, the industry's most prolific open source investor announced that it has raised another fund. 350 million Euros worth. This can only be a good thing for open source.
Index, perhaps best known for its investment in Skype, but the firm has done a slew of interesting investments (last.fm, FON, Oanda, Mobissimo, etc.). Danny Rimer, one of the partners there, gets my vote as one of the top venture capital investors anywhere, and especially when it comes to open source. MySQL, Pentaho, Trolltech, SourceLabs, and Zend all got early funding from Index.
Not sure what Index does that makes it so successful, but it's got to …
[Read more]
Sorry for the dead air recently. When I'm on a database project,
I'll post regularly on things I find or other tidbits of
information I encounter during the project. Even when I'm working
on a MySQL project, I'll usually have something to say about
what's going on or what I'm learning.
But lately, I've been on an Oracle Applications project. There's
two reasons I don't like to talk about Oracle Applications
projects. First, it's strategic to the company and I don't really
want to blog about company specific things. Second, I hate
dealing with it. The patches are unbelievable, the processes on
Metalink rarely work out of the box, and the product is so overly
complex that it's extremely difficult to administer. It's just a
very laborious process that I dread every time I start something
new. And there's really nothing exciting about it. Except the day
after I upgraded to 11.5.9, 11.5.10 came out.
So stick with me. Next up …
Sun Microsystems has announced an optimized version of the rapidly growing open source AMP stack (Apache / MySQL / PHP / Perl) on the Solaris operating system. Sun has also introduced a "try and buy" program as well as programs aimed towards Web 2.0 startup companies who up until now have been developing their business on Intel or Opteron boxes running Linux.
Support for the AMP stack is a good move on Sun's part to show their ongoing commitment to open source and making Solaris 10 a healthy alternative to Linux. While Linux has greater popularity than Solaris …
[Read more]Last week I read two books on Nagios. I found one easy to use and the other difficult.
Bitrix, Inc., the leading developer of content management system software for managing Web projects, announced that it has signed an agreement to become the certified partner of MySQL AB, the developer of the world's most popular open source database. This partnership will address the needs of enterprise content management system users and administrators.
i?m back to doing some work on connector/odbc, fixing bugs in the
?stable? version (otherwise known as 3.51.x). we have another
project going that is a ground-up rewrite of the driver, but i?m
not really involved with that.
the state of the stable version of the driver is pretty sad. i
keep running into pockets of code that are truly frightening. my
first big foray was a bug i reported when i was trying to get the test
suite to run, and it basically entailed throwing out a
function that made no sense and replacing it with code that has
such niceties as comments.
as i?ve started into the catalog functions, starting from
this ancient
bug, i?m finding even more frightening (and untested)
code.
my general goal is to leave things cleaner than i?ve found them,
doing things as incrementally as i …
... or "How to solve the same problem in 10 different ways".
One of the common problems to solve in SQL is "Get row with the group-wise maximum". Getting just the maximum for the group is simple, getting the full row which is belonging to the maximum is the interesting step.
SELECT MAX(population), continent FROM Country GROUP BY continent; +-----------------+---------------+ | MAX(population) | continent | +-----------------+---------------+ | 1277558000 | Asia | | 146934000 | Europe | | 278357000 | North America | | 111506000 | Africa | | 18886000 | Oceania | | 0 | Antarctica | | 170115000 | South America | +-----------------+---------------+
We use the 'world' database from the MySQL manual for the examples.
The next step is to find the countries which have the population and the continent of our gathered data.
SELECT …[Read more]
If you read the MySQL manual you might have seen the ORDER BY RAND() to randomize the the rows and using the LIMIT 1 to just take one of the rows.
SELECT name FROM random ORDER BY RAND() LIMIT 1;
This example works fine and is fast if you only when let's say 1000 rows. As soon as you have 10000 rows the overhead for sorting the rows becomes important. Don't forget: we only sort to throw nearly all the rows away.
I never liked it. And there are better ways to do it. Without a sorting. As long as we have a numeric primary key.
For the first examples we assume the be ID is starting at 1 and we have no holes between 1 and the maximum value of the ID.
move the work into the application
First idea: We can simplify the whole job if we calculate the ID beforehand in the application.
SELECT MAX(id) FROM random; ## generate random id in application SELECT name FROM random WHERE id = …[Read more]