There is *nothing* like unit testing within transactions w/InnoDB tables. Test to see that everything works, then rollback. w00t!
I've had to do the following work around for a Bug in MySQL 5.0.16:
$result = mysql_query($query);
if (!is_resource($result)) {
mysql_close();
sleep(1);
mysql_reconnect(); // reconnect.
$result = mysql_query($query);
if (!is_resource($result))
throw new Exception(mysql_error());
}
I wonder if I am elligible in the dirty workaround of the year award.
(Note that sleeping for smaller amounts of time failed).
MySQL and Business Objects today announced the signing of a new OEM referral agreement. Under the terms of the agreement, the two companies will jointly sell integrated solutions that combine the MySQL Network database subscription service with business intelligence software from Business Objects. The new solutions offer customers a cost-effective way to deploy an integrated business intelligence and database solution, at a fraction of the cost associated with traditional, proprietary databases.
So I did one of those decadent actions I do every so often. I
went to bed last night, started a book, got some sleep, and then
finished the book this morning. I received Connie Willis's
Bellwether in the mail on Friday (thank you Michelle!), and
decided to just read it. This is the first time I knew someone
who used my Amazon Wishlist. Normally I just get books from
strangers who are thankful for source code I release (mod_layout
seems to be the software that people are most thankful
for).
I liked the book though it was a bit outside of my normal
definition for Science Fiction. There really wasn't much of a
science fiction angle to it. The math was all statistical in
nature, and the comments on chaos theory weren't all that
profound. The main character rattles off facts constantly, and
about midway through the book I was waiting for the plot to get
going. Willis could have shortened the beginning and spent more
time on the main two …
About five years ago a Polish Australian, Patryk Zadarnowski, set
up a Linux Jewellery store online. As speaker at AUUG
conferences, I was lucky enough to receive a little black nickle
tux, and a "tux inside" keyring... excellent.
Patryk started it all as a weekend project (together with an
artist friend) but he soon found the demand was so high that it
turned into a full blown business. It's had tens of thousands of
customers over the years, from around the world.
Now Patryk wants to focus on his post-graduate studies, and so
the store is being closed down. For the very last time, the
remaining items of stock (and the domain names) are being sold
via http://home.exetel.com.au/ljs/
It's a great pity as it was a great initiative... a few years
ago, Patryk and I discussed the possibility of also creating some
MySQL-related jewellery. Unfortunately, …
About five years ago a Polish Australian, Patryk Zadarnowski, set
up a Linux Jewellery store online. As speaker at AUUG
conferences, I was lucky enough to receive a little black nickle
tux, and a "tux inside" keyring... excellent.
Patryk started it all as a weekend project (together with an
artist friend) but he soon found the demand was so high that it
turned into a full blown business. It's had tens of thousands of
customers over the years, from around the world.
Now Patryk wants to focus on his post-graduate studies, and so
the store is being closed down. For the very last time, the
remaining items of stock (and the domain names) are being sold
via http://home.exetel.com.au/ljs/
It's a great pity as it was a great initiative... a few years
ago, Patryk and I discussed the possibility of also creating some
MySQL-related jewellery. Unfortunately, …
There was a brief discussion on adding ways to hint selectivity in #postgresql this morning. Often the database has trouble figuring out a proper plan for a given query. One solution to this problem is to let the RDBMS analyze the data in the table. But even that falls flat in some situations, even if it has reasonably up to date table stats. Maybe the effort is just too high to make it worthwhile to figure things out at runtime.
Even generating those stats can take ages if you have a lot of data. In that case you can sometimes get by with analyzing sample data, sometimes this does not work though. Also some applications, I hear SAP is one of them, loves temporary tables. So these tables are just filled during some operation and then purged again. However in order to generate proper table stats you need to run the analyze on the table in exactly the state that is most relevant to performance. Otherwise you can totally obliterate your …
[Read more]There’s a great post over at Xooglers about how management wanted to move from MySQL to a ‘real’ (= non-free) database:
To make a long story short, it was an unmitigated disaster. The new system was slower than molasses in February. Some heroic optimization efforts eventually produced acceptable performance, but it was never as good as the old MySQL-based system had been. For a long time we were stuck with the worst of all possible worlds, with the two ads systems running on two different databases. It was still that way when I left Google in October of 2001, but I have heard through the grapevine that they eventually went back to MySQL. (Since then, MySQL has added many of the features that had been missing at the time.)
Read it at Let’s …
[Read more]“AdWords was built using the MySQL database, which is open-source and therefore available for free.”
Recently I had a chance to revisit question of RAID5 vs RAID10
performance for MySQL OLTP workloads (Random IO). The previous
set of benchmarks
I've done for MySQL Users Conference almost two years ago were
done on RH AS 3 and 8 Drive SATA 7200 Drives connected via 3Ware
8500 or something.
In that configuration RAID5 looked horrible compared to RAID10
showing absolutely terrible performance.
This time I've tested on Dell PowerEdge 2850 with 6 10000RPM SCSI
drives connected to embedded RAID (LSI MegaRaid) with 256MB of
cache and battery backed up. Operation system was CentOS 4.2
x86_64, ext3 file system.
I've used SysBench this time to get to the roots of performance,
rather than adding MySQL on top which could possibly have its own
problems of loading
drives efficiently. Here is the run option I've used after
"preparing" 32GB dataset:
./sysbench --num-threads=128 …