First, thank you so much to everyone who commented (and e-mailed)
me about my previous blog post. I wasn't really preaching to use
auto increment to anyone, just wanted to experiment. The bottom
line is to not use auto-increment, rather use sequences or work
around the application logic.
Now, to get to the point. I am very excited since with about
eight hours of work, I added the entire photo gallery
feature to Adoppt. I'm still working to find out the bugs,
but it's pretty neat.
For starters, it takes your photo and creates different sizes out
of it. You can upload a photo upto 600K and it will web-optimize
the photo for you. In addition the small and medium sized images
have rounded edges. And you know what's cool? You can tag the
photos just like anything else for your organization. In addition
now you can create collaborative galleries with friends. So all
my …
There's a lot to be said about what's happening in MySQL 5.1 Quite a bit has already been written about 5.1, but as I'm starting to do some testing I thought I'd hit the release notes and see how things have progressed over the past few months. Some great things coming down the line. A few that I found worthy of note:
- 5.1.8 (not released)
- mysqldump can dump events using --events
- CREATE PROCEDURE and CREATE FUNCTION now allow DEFINER syntax
- 5.1.7
- Now must use ENGINE= instead of TYPE= for specifying the storage engine to use with CREATE TABLE
- mysql_upgrade program which is smart about upgrading between versions
- new RENAME DATABASE statement
- creating, changing or dropping events is not allowed in triggers
- 5.1.6
- Packaging …
This site already went online a few weeks ago to launch this blog. Now, finally, it contains information about my forthcoming book “No Lobbyists As Such - The War over Software Patents in the European Union”. For your information, here is the related press release:
Florian Mueller’s book “No Lobbyists As Such”
tells the story of the successful
resistance
against the EU software patent directive
Starnberg, Germany (March 28, 2006) — Florian Mueller, the founder of the award-winning NoSoftwarePatents.com campaign, has announced his forthcoming book, No Lobbyists As Such - The War over Software Patents in the European Union. On approximately 380 pages, Mueller tells the story of the legislative process that ended in July last year with a landslide vote of the European Parliament against a proposal for a software patent directive. Pre-orders …
[Read more]I stand corrected on my earlier post Emulating Oracle Output Functionality (which I’ve updated) when I made a reference to MySQL catching up. That was not what I was implying, that MySQL had to catchup to Oracle. I was indeed making reference that MySQL is a 10 year old product, Oracle almost 30, and with a far greater historical R&D budget, MySQL as an organisation has for lack of a better term, entered the race at a later time. One could also argue it’s not a race, I’m just using this analogy.
For those that might have thought this in reading my earlier article, I’d encourage you to re-read my updated introduction for my clarification and correction.
The comment was made to me, “Oracle is very good at being Oracle” which is totally correct, and the “MySQL’s market now overlaps that of Oracle, and so there is competition.” Indeed Oracle, as a …
[Read more]I’ve posted a new review version of the Sakila sample database for your reviewing pleasure.
The big change in this version is the introduction of formal documentation, including a full schema description, history, etc.
There are a couple of known issues with the data, but I thought I would get this out for people to look at.
Changes:
- Fixed bug in sales_by_store view that caused the same manager to be listed for every store.
- Fixed bug in inventory_held_by_customer function that caused function to return multiple rows.
- Moved rental_date trigger to sakila-data.sql file to prevent it from interfering with data loading.
Thanks to everyone who provides feedback, it is much
appreciated.
DOWNLOAD HERE
P.S. It also includes a schema diagram in MySQL Workbench format. …
[Read more]This week at the EclipseCon in Santa Clara we announced that MySQL joined the Eclipse Foundation. Admittedly, I wish we would have joined a long time ago (like maybe the first hundred times Mike and Donald asked us) but we finally got our ducks in a row. To me Eclipse is one of the most successful and intriguing open source projects to date. The entire process of open sourcing Eclipse was a masterpiece of strategy led by IBM that enabled them to create the best extensible tools platform. There are really only two development tools platforms that matter: Eclipse and Visual Studio. While both are open and extensible, only one of them is oopen source and cross-platform.
In fact, Eclipse has garnered support from more than 130 member firms and there are now more than 1000 Eclipse plug-ins and more than 60 projects …
[Read more]
If a query does a SELECT the optimizer will discover which
partitions
that has to be scanned. In 5.1 these scans will still be
made
sequentially on one partition at a time. However only those
partitions
actually touched will be scanned which can improve performance
on
certain queries by a magnitude.
The aim is to support parallel scan in a future release as it is
to
support parallel sort on the first table selected by the
optimizer.
This is an important long-term goal of partitioning to open up
the
MySQL architecture for many performance improvements on
handling large data sizes. In 5.1 we have achieved quite a few
of
those goals but expect to see more goals achieved as new
versions
of MySQL hits the street burning :)
In MySQL tables are locked as part of the MySQL Server code
during each
statement. For a SELECT statement each table in the SELECT
statement is
locked using a read lock. For UPDATE/INSERT/DELETE statements a
write
lock is used. For ALTER TABLE a special lock that excludes
writers but
allows readers to be processed is taken.
However what these locks actually do is dependent on the
underlying
engine. For MyISAM, a read lock means no updater is allowed
during the
statement and a write lock means that no other writers is allowed
and
also no other readers.
For other engines such as NDB and InnoDB that employs row-level
locking
internally these locks are mostly ignored except for the special
ALTER
TABLE lock that ensures that no writers is allowed during the
ALTER TABLE
statement.
(There is quite a lot more details to locking in MySQL …
I've been a MySQL Cluster hobbyist for some time now. I say that because over the years I've followed what's happening with MySQL Cluster and have run it on various personal computers (and laptops). I threw a chapter into Pro MySQL about setting up and managing a cluster and am off to PHP Quebec on Wednesday to give a presentation on getting a cluster up and running. But I've have yet to work with the cluster in a setting other than for personal intrigue.
The other day at work I was telling a few folks about the upcoming trip and mentioned my presentation. The CTO was along for lunch and had a slew of questions about the MySQL Cluster. To my delight one of the next things on the infrastructure list is to research alternatives to slicing data across many standalone machines and implement a …
[Read more]I've returned from vacation and will be posting the blog drafts I've got stuffed in my outbox. The snaps below are from the farewell dinner at the end of our Dev Con in Sorrento, Italy. Great music, great food, and fun!
Tomorrow my family and I are attending the Pompeii excursion (I've already blogged about the running water there!). We are going to follow that with 3 days in Rome and 3 days in Venice (blogs to follow).
And, of course, the night would not have been complete without a number from Patrick!