I have a background as System admin and DBA, focusing almost exclusively on MySQL in the last 4 years, building highly scalable environments where performance and high availability are the main focus.
Experience with big databases: currently I am also working with a customer with a complex topology of database servers spread across multiple regions: in each region the main database is sharded in multiple servers, where each server stores around 7TB of data.
Availability on fixed amount of hours per day and/or 24/7 (Emergency).
Expert in optimization to be achieved in multiple ways, depending from the specific business requirements and architecture.
Few examples are:
- choice the right hardware (especially IO subsystem) and tune it correctly (raid, bbu, OS scheduler, etc);
- tune mysqld to reduce the number of syncs (multiple system variables can be tune accordingly);
- choice the right storage engine. Few examples: InnoDB/TokuDB/NDB/Galera;
- configure the storage engine to optimize writes. This is a generic concept, and implementation depends from the specific storage engine. In case of InnoDB, this may means optimizing redo buffer/logs, io_threads, checkpoint and flushing algorithms, but also reducing locking overhead, adaptive index, etc. In case of other storage engines, other optimizations are possible;
The above list is not fully comprehensive: the best ways to optimize writes often depends from specific business requirements and architecture.