Why Relator is built on MySQLRelator 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.
- 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.
- Database indexing is the lynch pin of database performance. It's crucial to application performance that indexes are properly conceived and implemented.
- 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.
- Full text indexing is slow and cumbersome.
- Table locking can cause problems but has been largely cured in InnoDB