I’ve recently written about techniques for archiving, purging, and re-indexing huge database tables. These techniques exploit both data structure and usage patterns. In this article I’ll develop that theme further, and explain how to write more efficient non-backtracking maintenance jobs when the update and insertion patterns permit. Motivation In my current employment, I’ve been optimizing databases for size, speed, and consistency. As part of my regular monitoring, I checked our master MySQL server for deadlock information and found that a nightly cron job’s query had caused other queries to time out or deadlock, then became a deadlock victim itself and died, after loading the server for a long time.
I will be at FrOSCon 2006 on June 24, with a talk about
Pivot tables in MySQL 5.
I will arrive in Sankt Augustin on June 23, flying from Alghero Fertilia,
Italy to Frankfurt Hahn, Germany and then driving to the
conference site (travel plan).
The funny thing is that, when I booked my flight, I had no idea
that I was about to get in the middle of the Soccer World Cup.
Being no soccer fan, I realized this fact only when the media
circus started and I could not avoid being informed. Oh, well,
now I understand why it wasn't easy to find a hotel, even booking
two months in advance!
The slides and the source …
I’ve had my blog at Free Software Magazine added the Planet MySQL syndication site.
Digg, for those who have been under a rock for the last year, is a technology web site that gives users the opportunity to rank news stories. Think of it as a combination of social bookmarking and nerdly news. Digg grew out of founder Kevin Rose's desire for a feature within Slashdot to let users vote on their favorite stories. Unfortunately, Slashdot couldn't accomodate the feature. Necessity (or perhaps envy) being the mother invention, Rose created Digg.com. Digg raised $2.8 million in venture funding from Marc Andreessen, Pierre Omidyar and Greylock partners last year.
Digg has continued it's rapid growth with nearly a four-fold increase in traffic in just over a year. It's daily page …
[Read more]Documentation is a vital part of any application, proprietary or free software, as it is often the first way to communicate with users about the application or software and how it should be used. I also think it tends to be one of the areas most taken for granted; most users expect it to be there and often forget just how much effort goes into producing it.
Many users also complain about the documentation itself. Often this is because it?s been written by programmers and, as a rule, they really aren?t that great at writing documentation that is particularly human readable.
I have begun work on the next set of features for MDB2. I just implemented a feature inspired by the popular ADODB abstraction layer. John calls it smart transactions, while I am currently planning on calling it nested transactions. However I will wait until Lorenzo has some time to look at things to see if we can fit native nested transactions in there or not. Interbase/Firedbird really shines in this department.
I have written up a little script to show the current implementation available in CVS:
<?php
$mdb2 =& MDB2::singleton($dsn);
$mdb2->setOption('debug', true);
$query = "DELETE FROM autoinc";
$result = $mdb2->exec($query);
$query = "SELECT id FROM autoinc";
$result = $mdb2->queryCol($query);
var_dump($result);
$query = "INSERT INTO autoinc (id) VALUES (?)";
$stmt = $mdb2->prepare($query);
$mdb2->beginNestedTransaction(); …[Read more]
Every time I'm travelling (for a conference, or teaching a
training course), I wonder how the hotel operators envisage the
use of the iron and ironing board.
The problem is of course that one actually needs to plug in the
iron. But finding a socket in a place near where you can sensibly
place the ironing board.... it's just one of those very curious
things.
We are very pleased to announce the release of the MySQL Virtual Appliance. Literally the easiest and fastest way to get MySQL running. The MySQL Virtual Appliance is just 22MB to download, and is running MySQL and PHPMyAdmin right out of the box with no configuration.