Large MySQL databases

... don't work very well using the MyISAM table type. Corruptions and system lock-ups are a-plenty  when you have MyISAM tables with more than 1,000,000 records. The only  reason you would want to use MyISAM tables is to use the full-text searching functionality, and this feature is only marginally better than using the SQL 'like' statement.

Oh hell, my data is no more,
It all lies on the floor!
I used a cheap database,
And now I've lost some face.
MySQL is just such a chore! 

If you are hosting millions of records and need any text-searching capabillity, then your data is probably worth more than the system itself. So go for a proper, but paid-for, RDBMS like Oracle, which also has excellent full-text searching capability.  "Don't spoil the boat for a ha'penny's worth of tar" as they say.


How to Dedupe a table in MySQL

A quick and dirty way of stripping duplicate records out of a MySQL table!, if your table has no indexes or constraints:

Assuming the name of the offending table is customers:

CREATE TABLE customer_dedupe AS SELECT DISTINCT * FROM customers;
RENAME TABLE customers TO customers_dupe;
RENAME TABLE customers_dedupe TO customers;


But what if your original table had indexes?

Read more...