mysql开发规范
1.默认使用innodb引擎
innodb引擎适用于几乎99%的mysql应用的场景,而且mysql5.7的系统表也改成了innodb,并且频繁读写的innodb表,一定要有自增的整型作为显示主键。
(主键索引的采用B+树,所有的数据都存放在叶子节点。读取索引的数据是先找到索引所在的页,把page加载进入内存,然后再从内存中查找,如果不按照顺序的话,为了维持索引的有序性,mysql会频繁的页分裂,造成浪费大量的资源)。
2.innodb表行记录物理的长度不超过8kb
innodb的data page默认是16kb,基于B+tree的特点,一个data page至少要存储2条数据,所以,一行记录最好不要超过8kb,如果超过了8kb,会引起page-overflow
所以,如果必须使用大列(text/blob)且读写频繁的话,最好把这些大列拆分到子表中,不要和主表一起存储
3 大数据量表的话使用分区分表
如果一张表的数据量很大的话,curd操作总是会很慢的,因为基数就是很大,可以考虑分表分区,分表是讲一张大表按一定的条件分割成若干字表。应用在查询的时候需要具体到哪一张子表上去。分区(partition)对应用来说是透明的,还是那一张表,只不过数据存在了不同的地方,主要有range,list,hash,key分区等。总的来说精髓就是 分而治之。
越努力越幸运