My opinion on MySql best practices, the new new 'chain letter'
started by Ronald Bradford. As always, this is a developers
point of view.
0. Make a database design. Databases generated automatically
might work very well in development, but when you have large data
volumes and lots of concurrent users they do not.
1. Be consistent in your choice of datatypes. I prefer to use
just a subset in a system. Try to stick with SMALLINT UNSIGNED or
INTEGER UNSIGNED for keys. Always use the same datatype for the
same term in all tables, no joins with datatype conversion! Do
not store numbers as CHAR/VARCHAR fields.
2. Make sure there are indexes supporting all searches that are
part of routine system usage. If you have tables that are very
small it might be better not to index them, but this should be an
active decision.
3. Verify your …
As I felt the itch to do some quick hacking yesterday, I decided to provide an RPM spec file for the MySQL proxy. The changes have been commited to the SVN trunk now and I added some hints to the INSTALL file on how to perform an RPM build.
Here is a quick summary of how to convert the current SVN code into an installable RPM. You build environment needs to fulfill a few additional prerequisites (a gcc compiler and the C library header files are taken for granted here), I added the versions I used on my openSUSE 10.2 system for reference:
- autoconf 2.56 or newer (autoconf-2.60)
- automake 1.9 or newer (automake-1.9.6) …
The submissions have been flowing in nicely, but the usual
speaker slackness (and waiting for the deadline to make that
pretty whizzing sound as it zaps past) appears to also be alive
and well!
So, prod prod... http://osdc.com.au/papers/cfp.html
Keep em coming.
This year's Open Source Developers Conference (OSDC) 2007 will be
held in sunny Brisbane Australia, 26-29 November. It's by
developers, for developers, with of course some modern business
mixed in. About applications and languages, tools and strategy...
you want to be part of this for sure.
In response to Ronald's challenge in Top 5 wishes for
MySQL, here is my top 5 wish list. However, it make sense for
me to put a slightly different spin on the top 5 series, and
write from a storage engine developers perspective.
1. A generic engine test suite
A set of mysql-test-run test scripts and results that are
intended to be run by all engines. The tests will verify basic
functionality and compatibility, and form the basis for an engine
certification process.
2. Internal APIs
PBXT already has to call into MySQL to open .frm files, and
transform path and file names. The BLOB Streaming
engine will need to access user privilege information. Other
engines use the cross-platform functionality provided by mysys.
What we need is a number of official, …
MySQL AB today announced that McGraw-Hill Education, a leading global provider of educational materials, information and solutions, has chosen the MySQL database to power the network version of its widely-used "Breakthrough to Literacy" learning program.
MySQL's high performance, flexibility and small footprint make it an ideal choice for educational software vendors and other ISVs looking to affordably integrate a world-class database into their product offerings. Today, leading educational software vendors using MySQL include American Education Corporation, eduphoria!, eSchool Solutions, LeapFrog Enterprises, Pitsco and Siboney Corporation.
MySQL users often dream about a more powerful yet stable database server. They want a server with more features, like expanding macros, customized logging, access to shell commands, access to live tables from other DBMS. Every feature, given enough development time, can be eventually implemented, but users want them now, with the current GA server.
It can be done. Using a proxy server, some of those dreams come true. Today.
In two separate pieces of news today, EnterpriseDB was selected by FTD to replace Oracle, and Liferay was selected to replace Novell's exteNd portal offering. Both demonstrate the continue value that open source provides (yes, even to EnterpriseDB).
Interestingly, both EnterpriseDB and Liferay have Apache-style licenses at their core. The difference, of course, is what they sell on top: for EnterpriseDB, they add some closed software; for Liferay, they add support. What's exactly the same is dramatic cost savings and improved performance by moving away from 100% proprietary offerings:
On EnterpriseDB's win with FTD, and over Oracle (improving system performance by 400% while dropping the cost by 83%)...
EnterpriseDB, the …
[Read more]Wow. This post from Glyn Moody just resurfaced memories that should never have been forgotten. Glyn reminds us that IBM made a patent pledge that protects OSI-approved open source projects:
IBM today pledged open access to key innovations covered by 500 IBM software patents to individuals and groups working on open source software. IBM believes this is the largest pledge ever of patents of any kind and represents a major shift in the way IBM manages and deploys its intellectual property (IP) portfolio....
The pledge is applicable to any individual, community, or company working on or using software that meets the Open Source Initiative (OSI) definition of open source software now or in the future.
As Glyn suggests, IBM has …
[Read more]
I was just reading Tim's comments on Foo Camp.
Unless you saw me on the last day of Foo Camp, you wouldn't have
seen
me with a laptop at all. I made a point of leaving it in the
trunk of
the rental car.
Why?
When I have it, I use it. This means that I don't pay 100%
attention
to the room. Sometimes this is ok, I multitask well, but I wanted
to
see how this changed my interactions with people. One thing
that
didn't happen was that I didn't race off and write code at the
drop
of a hat. Normally at these events I find some interesting idea
and
just write it up quickly (yeah... this is how I do note taking
for
projects... I write prototypes).
Instead? I used my cell phone. I wrote my notes in it. Not great,
but
it worked. The …
We had the Top 5 wishes for MySQL started by Jay recently. So in true chain letter fashion I’m starting a new one this week. “The top 5 Best Practices for MySQL”. This like it’s predecessor is generally vague, so it can include points on development, design, administration etc.
My list:
1. Write your application to support Transactions (and therefore use a Transactional Storage Engine).
2. Always use SQL_MODE. e.g. at least TRADITIONAL and ANSI to ensure better data integrity and errors as errors.
3. Use the most optimal data types (particularly for number (e.g. TINY/SMALL/BIG INT and nullability) and especially in relation to columns in indexes.
4. When using InnoDB use the shortest primary key possible (e.g. INT UNSIGNED. BIGINT unless you have more then 4 billion rows in your potential data set is laziness).
5. …
[Read more]