除了上述索引使用规则外,SQL 编写时还需要特别注意一下几点:
  1、尽量规避大事务的 SQL,大事务的 SQL 会影响数据库的并发性能及主从同步;
  2、分页语句 limit 的问题;
  3、删除表所有记录请用 truncate,不要用 delete;
  4、不让 mysql 干多余的事情,如计算;
  5、输写 SQL 带字段,以防止后面表变更带来的问题,性能也是比较优的 ( 涉及到数据字典解析,请自行查询资料);
  6、在 Innodb上用 select count(*),因为 Innodb 会存储统计信息;
  7、慎用 Oder by rand()。
  分析诊断工具
  在日常开发工作中,我们可以做一些工作达到预防慢 SQL 问题,比如在上线前预先用诊断工具对 SQL 进行分析。常用的工具有:
  1、mysqldumpslow
  2、mysql profile
  3、mysql explain
  具体使用及分析方法在此不赘述,网上有丰富的资源可以参考。
  误操作、程序 bug 时怎么办
  提出这个问题显然主要是针对刚开始工作的年轻同行们……实际上误操作和程序 bug 导致数据误删或者混乱的问题并非少见,但是刚入行的开发工作者会比较紧张。一个成熟的企业往往会有完善的数据管理规范和较丰富的数据恢复方案(初创公司除外),会进行数据备份和数据容灾。当你发现误操作或程序 bug 导致线上数据被误删或误改动时,一定不能慌乱,应及时与 DBA 联系,第一时间进行数据恢复(严重时直接停止服务),尽可能减少影响和损失。对于重要数据(如资金)的操作,在开发时一定要反复进行测试,确保没有问题后再上线。