What was a 5-minute script has become a bigger project. I've made more improvements to the duplicate index checker. Soon it will require product activation and have security vulnerabilities every week. Seriously: this is the third iteration, and three strikes and you automate, so I automated. I have a test suite now (your contributions welcome), and I addressed two shortcomings readers pointed out in comments on the original article. You now get better foreign key checking, and FULLTEXT indexes are ignored.
After spending a good week at my parents in rainy but relaxing florida, I flew to Toronto to speak at php|works. The conference was great fun and especially my second talk Explaing Explain went as good as I had hoped. In the talk I was mostly talking about controlling execution plans with particular focus on MySQL and PostgreSQL. I spend longer than ever on this talk so I am happy it worked out so well. I will probably submit the same talk for OSDBcon with some minor tweaks. Since I only had 60 minutes several slides are marked "skip". Maybe OSDBcon can give me two slots so that I can cover those slides as well. The other talk building portable database applications …
[Read more]
The PyBots project (http://pybots.org/) is a way for people to run
tests for python applications using Python binaries built from
the very latest source code from the Python subversion
repository. The idea is brilliant, and has application far beyond
the Python project.
As Grig Gheorghiu previously announced on his blog, I’ve set up
a buildslave testing MySQLdb, the python connector for MySQL.
I’ll probably try to set up tests for SQLAlchemy next.
You can see the builder status page here, my builder is named
‘amd64 Ubuntu Dapper trunk’.
Instructions for how to set up a buildslave are on pybots.org,
and you can see the buildscripts along …
Following my User Group Presentation I was asked by fellow MySQLer Kim about Logical Data Modelling (LDM), in relation to Physical Data Modelling.
Well, first the brain had to work overtime to remember when was the last time I worked on a Logical Data Model. The answer to that is 1996 doing R&D work for Oracle Corporation with their CASE repository tool, Oracle Designer, about version 1.3/1.3.2. I’ve learnt in the past 10 years to purge technical stuff from my brain, leading from the capacity in be able to remember in detail data models, data migration and data cleansing issues of projects even after leaving them 3 years eariler.
As Kim pointed out, he thinks physically, actually directly at the SQL level, then working backwards to produce an appropiate physical model. To think logically is to consider the entities and attributes and relations before considering the …
[Read more]
It's been reported that Rob Levin, known to many as "lilo" on the
freenode.net
IRC network, has died. Apparently, he was hit by a car while
riding his bicycle (the car didn't stop) in his home town of
Houston TX.
Sources:
http://www.tonystreet.com/lilo.txt
http://en.wikipedia.org/wiki/Rob_Levin
http://linux.slashdot.org/linux/06/09/16/2152243.shtml
This is really sad news. I only knew him from the email, IRC and
phone conversations we had, but it was clear that he was a guy
who put a lot of time and energy (not to mention money) into
building the Freenode IRC network - which is also the home of the
most popular #mysql channels.
…
A quick note to Solaris fans. I've fixed the GNU build scripts
for MySQL 5.1 on Solaris:
BUILD/compile-solaris-sparc
BUILD/compile-solaris-sparc-debug
I do not have the script fixed for building with the Sun compiler
yet, its giving me issues in the configure stage.
The above will build all of the 5.1, aka this includes Cluster,
Archive... all of the engines. Someone should look at the
assembler string support for Sparc since I was not able to get it
to work.
The fixes were pushed into the 5.1 tree late last night so they
should be publicly available now.
We've known for years that upwards of 70% of web sites use Apache to power their sites. We also know that much of MySQL's thriving business comes from "Web 2.0" companies - the web runs MySQL (and a heck of a lot of Linux). What has been less clear is how much of the web that we see is managed by open source web content management systems.
Dries Buytaert, lead on the Drupal Project (a leading web content management system), sent me the results of an interesting, 5000-web developer survey that sheds light on the question. The survey was conducted from June 2006 to July 2006, and released by as the "2006 State of Web Development" report by SitePoint Pty Ltd. and Ektron, Inc. This is must-read material for anyone in the WCM space, but also interesting for those tracking the rise of …
[Read more]Well, now I have your attention, Slow Queries are bad (unless it’s a single user system and you don’t care). However there are worse things then slow queries in a large enterprise system.
I’ve been asked in recent weeks a number of questions which has brought this topic to discussion, as well as a current implementation I’m undertaking for a client of a purchased product.
High volume repetitive queries can have a worse effect on your system’s performance. Combined with slow queries that take locks, these queries can have an extreme effect on performance and if you don’t know your application, or have the right tools, it can be initially hard to diagonise easily.
This problem is the classic Wasting CPU cycles problem, seen it before, will see it again.
Here’s a classic example for reference. Using the current product that I’m customising and installing (I’ve not be involved …
[Read more]
Its 6:15PM on a Friday so I am trying to write out some final
thoughts before I leave to go see a play (its Friday... I really
should get out).
Final rant for the week?
if()!
I am looking at some code in 5.1 (aka the mysql server) that I am
none to pleased with and its making me think about how to
determine where bugs in code are likely to be. I am not talking
memory leaks, aka the stuff that is cake to find, but instead the
bugs which keep you up at night.
Its time to start blaming if(). When I see an if(), especially
when there is no else, I take an extra hard look at it.
What was the exception that required the if()? Was it platform
dependent, was it there to fix some bug in some special case
(yuck! non general solution). Is the if() there to branch for a
feature?
So I am left pondering whether or not you can predict the amount
of bugs in any code base by …
I’ve worked for two Internet startup companies, both around 2 years each, both now long dead. The first was due to eventual lack of new VC funds, the second gross financial managment in the second year (apparently, when we were told there was no money December one year to pay us, the company that made large profits every month for over the first year, then had made losses every month for the past 12 months, but nobody knew about it. There were 5 Directors from 3 countries and nobody knew. Yeah Right!)
I’ve learnt a lot of non IT street smarts in this time. The first
startup took the VC route, and after 3 rounds while I wasn’t
involved in the process you pick up things. The single biggest
tip here is the Bell-Mason Diagnostic. Here a few introduction
references worthy of a quick review ( …