MySQL

(重定向自MySQL

MySQL简介 , 如何使用 PHP操作MySQL

初级

  • 能自行搭建MySQL Server,熟悉基本的MySQL配置选项(my.conf);
  • 熟悉常用的存储引擎, 知道innodbmyisam的区别,知道针对InnoDB和MyISAM两个引擎的不同配置选项;
  • 熟悉各种数据类型,知晓使用范围;
  • 熟悉常用sql语句;
  • 熟悉外部工具(mysqldump)冷备和恢复数据库;

中级

  • 能够纯手工编译搭建一个MySQL数据库并且配置好编码等正常稳定运行;
  • 熟悉常规SQL优化(group by/order by/rand优化等),以及性能分析;
  • 知晓复杂配置选项,(比如key_buffer/query_cache/sort_buffer/innodb_buffer_pool_size/innodb_flush_log_at_trx_commit等);
  • 知道如何搭建mysql主从同步的环境,知道各个binlog_format的区别;
  • 知道MySQL的性能追查,包括slow_log/explain等,还能够知道基本的索引建立处理等知识;
  • 了解基本的MySQL的架构(Server+存储引擎),知道各种存储引擎的特点,知道基本的InnoDB/MyISAM索引存储结构和不同(聚簇索引B树B+树);
  • 知道基本的InnoDB事务处理机制;
  • 了解大部分MySQL异常情况的处理方案。

高级

  • 能够完成大批量数据的导入导出,线上大批量数据的更改表结构或者增删索引字段等等高危操作;
  • 能够处理更多复杂的MySQL的问题,比如各种问题的追查,主从同步延迟问题的解决、跨机房同步数据方案、MySQL高可用架构等都有涉及了解;
  • 对MySQL应用层面,对MySQL的核心关键技术比较熟悉,比如事务机制(隔离级别、锁等)、对触发器、分区等技术有一定了解和应用;
  • 对MySQL性能方面,有包括磁盘优化(SAS迁移到SSD)、服务器优化(内存、服务器本身配置)、其他核心性能优化选项(innodb_log_buffer_size/back_log/table_open_cache/thread_cache_size/innodb_lock_wait_timeout等)、连接池软件选择应用,对show *(show status/show profile)类的操作语句有深入了解,能够完成大部分的性能问题追查;
  • MySQL备份技术的深入熟悉,包括灾备还原、对Binlog的深入理解,冷热备份,多IDC备份等;
  • 在MySQL原理方面,有更多了解,比如对MySQL的工作机制开始阅读部分源码,比如对主从同步(复制)技术的源码学习,或者对某个存储引擎(MyISAM/Innodb/TokuDB)等等的源码学习理解,如果条件允许,可以参考CSV引擎开发自己简单的存储引擎来保存一些数据,增强对MySQL的理解;

参见

参考资料