1. ORMs (object relational mappers) abstract away the SQL difficulties of interacting with the backend but result in complex queries that the database cannot optimize easily. They also make tweaking of queries difficult, slowing the process down.
  2. Synchronous, serial, coupled or locking processes such as table-level locking, waiting for a message from another node to continue or two-phase commit mechanisms should be replaced more efficiently by granular row-level locking using InnoDB and multi-phase commits.
  3. A single copy of your database can become a bottleneck; use replication instead.
  4. Lack of metrics like user registrations, accounts, widgets sold; low-level activities like system CPU, memory, disk & network usage; and database level activity like buffer-pool, transaction log, locking sorting, temp table and queries per second can leave dev ops and business units struggling.
  5. Lack of feature flags leaves operations teams unable to reduce the server load in case of a spike in traffic.

Full post here, 4 mins read