众所周知,在一个完整的网站中,最容易出现瓶颈的地方,就是mysql服务器。所以我们不能对它为所欲为,而是应该让它花费少的力气工作。所以一个合格的web开发者,必须会对mysql进行优化。
怎么对Mysql进行优化?
我个人的理解是:两个方面优化
1:先天条件(指的是mysql表设计阶段,建立合理的索引,选择合适的字段类型和存储引擎,遵守设计三范式等)
懂数据库优化和不懂数据库优化的开发者,设计出来的表性能是完全不一样的,有的表出生条件好
(字段选择合理,索引建立合理),有的表在设计阶段为所欲为,先天条件不好,这种表迟早要被
推翻重新设计
2:后天培养(指的是后期sql重写,对一些大sql,大事务,分段执行,分表,分区,使用缓存,主从集群等)
以上需要用到的技术,如果各位看客比较了解的话,那么你是一个合格的web开发者
本篇主要讲解 mysql优化之----先天条件中涉及的知识
1:什么是数据库设计的三范式?
1:数据库中的每一列都是不可再分的
2:非主键字段依赖主键字段
3:非主键字段之间不能相互依赖
2:mysql常用的存储引擎?区别是什么?
常用的存储引擎有两种:Myisam 和 Innodb
区别:
innodb支持事务,myisam不支持事务操作
innodb支持外键
innodb支持行锁
综上:innodb适合高并发写入情况,myisam支持小并发的查询操作