Lorenzo has startet working on better charset support in MDB2. He has added basic support for setting charsets and collations inside field definitions in CVS already. However, there are still plenty of open questions to look at. I have only limited experience with charsets in MySQL. Lorenzo has some experience with Firebird and PostgreSQL. But this is no where near sufficient to come up with a solution that would work reasonably well across all supported drivers. Check out his charset RFC on his blog. Comments are very much appreciated, even if they just highlight problems without giving a solution just yet.
For certain evil purposes last week, I assembled the old Saturn with a hard disk I found when cleaning a little while ago (I have that kind of tech stuff - you clean up and find 40GB disks - I’m pretty sure I have an 8.4 bumming around somewhere too).
I ended up being able to do the evil I needed to, but I could tell that the room was a bit warmer due to the extra box being alive. I was also lazy and couldn’t be bothered going downstairs for the D200, so this was shot with my old and trusty Coolpix 4500.
I used the box to be able to get remote access to a customers’ test setup to do some diagnosis on a bug (that’s notoriously hard to reproduce). I think I have a fair idea of what it is now though (timing related - not fun).
Remember kids, threads are evil.
Also, an interesting thing to …
[Read more]
Twice recently I have had to import data from a flat file into a
database — both sets of data were being imported to make better
use of the data in the files. Importing a file is not that
difficult using mysqlimport
, particularly since in
both cases the data was tab-delimited. I also could have used
LOAD DATA INFILE
.
The problem with mysqlimport
and LOAD DATA
INFILE
is that you need to create the table beforehand.
Often, though, I may not know the exact data types. Folks have
written about PROCEDURE ANALYSE()
, but they use
it in the context of “you can check to see that your tables have
the correct data types.”
The final release of python 2.5 is out! The list of what’s new is pretty impressive, but I’m especially happy to have the new “with” statement. Ruby has block methods, or closures, which can be used for doing very clean setup/cleanup. While full-blown Anonymous block statements were rejected from Python, the new “with” statement handles the part I care about: making it easier to write code that works correctly in the case of failures.
The 3 typical use cases are a file that needs to be closed, a lock that needs to be released, and and a database transaction that needs to be either committed or rolled back. The database case is the …
[Read more]“MySQL is at the heart of revolutionary changes in the computer industry” - Tim O’Reilly
Hmmm, worthy of my Quote of the Day Section, but is it necessarily true. I believe MySQL is significant in the advancement of great opportunities in the computer industry particularly the Internet, but is it revolutionary?
The Oxford Dictionary states: revolutionary ? adjective ? involving or causing dramatic change or innovation.
Perhaps so. Any Comments Welcome.
Stolen shamelessly from the MySQL User Conference Web Site Banner.
This is a post from a few months back which somehow got stuck.
I’m publishing it now as it still holds true.
I read an article today which mentioned “supernova burnout”,
describing it as burnout that occurs when someone has reached the
pinnacle of their career (I’m paraphrasing from memory here). The
recommended solution? Find a cause that you are passionate about,
and find a way to work it into your life.
Want to know what I’m passionate about? Taking care of my family.
That will add purpose and meaning to any job. Something I love
about working at MySQL is that I can work from home, which means
I get to see my family a LOT more than I have in years past.
Somehow there is just no substitute for being present.
I’m also passionate about programming, and sharing knowledge with
other people. The book Code Reading: The Open Source
Perspective highlights just how important it is to have
access to the …
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]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]