Relator on MySQL
Why Relator is built on MySQL
Relator is built on top of the ADODBPHP database abstraction layer which means that most of the codebase can be used with any of the major RDBMS systems.

The first CRM incarnations were built on MS SQL Server with heavy leverage of stored procedures for speed.
Cost and performance issues quickly led to a migration to Linux based RDBMS on the LAMP stack.

The choice was between Postgres and MySQL.
 
  • Ubiquitous: MySQL is the 2nd most popular RDBMS in the world after Oracle
  • Runs on every major operating system including Linux.
  • It has the easiest backup and restore systems of any RDBMS (IMHO)
  • Connection times to MySQL are at least 5 times faster than SQL Server
  • It's free.
What's so important about normal form ?
 
  • Database normalization is the process of structuring a relational database in accordance with a series of so-called normal forms in order to reduce data redundancy and improve data integrity.
What's so important about indexing
 
  • Database indexing is the lynch pin of database performance. It's crucial to application performance that indexes are properly conceived and implemented.
Why did we write our own mirror system ?
 
  • The purpose of the mirror was not to track schema changes or atomic transactions.
  • The mirror process needed to be fast and frequent over https
  • The mirror payload needed to be as small as possible. (Binary logs can get huge)
  • The mirror process needed to handle deletes.
So what are the downsides of MySQL ?
  • Full text indexing is slow and cumbersome.
  • Table locking can cause problems but has been largely cured in InnoDB