
分表:
分表有水平分割,和垂直分割。
水平分割:意思就是将某张表,按某种规则,分割成多张,表结构一样,这个规则应该是选择表的规则,常见的办法有,字段取模,字段哈希,日期分割,数量分割,地区分割等。
垂直分割:也就是将一张大表,根据业务将字段分离出来重新组成一张或多张表。
Myisam 需要定期整理碎片,innodb 需要定期整理索引碎片,innodb 需要尽量少做删除操作,可以使用软删除。
ALTER TABLE tablename ENGINE=InnoDB
OPTIMIZE TABLE table_name
- 将定长字段表与变长字段表分离。
- 常用字段和不常用字段分离,大文本分离。
- 字段优先整形。
from 子查询形成的临时表示不带索引的,所以需要返回尽量少的数据。
最后再考虑读写分离,冷热备,调整 mysql 系统参数,做存储过程(慎用),例如最大连接数。
Mysql 优化从来不是一两句话能够解决得了的,首先还得了解 Mysql 的各种基础知识,等有时间了再去深入的了解关于 Mysql 更多的有趣的知识。
原文链接: mysql 优化之乱炖
网友评论