在日常的开发工作中,除了JAVA相关的技术,打交道最多的就是MySQL数据库,当数据积累到一定程度,比如500W时就会难免出现一些慢sql,对数据库的优化方式有很多,比如通过增加合理的索引,今天我们来说下其中的垂直分表 。
垂直分表:顾名思义就是将一张表纵向拆分成多张表,通过拆分后每行的字段数减少了,空间占用变小,当检索表数据时,一次IO就能从磁盘获取更多的数据到内存中,减少了IO次数,降低了响应时间 。
拆分的一些原则:
- 可以根据业务进行拆分,比如原表中有些是一些辅助信息字段,此时可以把辅助信息拆分到另一张表中,并增加与数据的关联,比如增加元数据的主键等 。
- 将核心字段或者经常访问的字段放到一张表中,让表更加原子,清晰,但是以合理为基础,也可以冗余字段,也不要过度拆分 。
order表
![面试题-Mysql数据库优化之垂直分表](http://img.jiangsulong.com/220418/23031K631-0.jpg)
文章插图
t_order_contact表
![面试题-Mysql数据库优化之垂直分表](http://img.jiangsulong.com/220418/23031G528-1.jpg)
文章插图
订单中的联系人信息是订单的扩展信息,而且不常访问,拆分后原订单表轻量了,更加原子化,效率也提升了 。当我们需要同时获取订单与订单扩展信息时,不建议join方式,应分别查询然后通过程序去处理 。
【面试题-Mysql数据库优化之垂直分表】
推荐阅读
- 2020年常见Vue面试题
- 金星表面城市遗迹 金星上发现了2万个废墟
- 华为鸿蒙系统界面曝光,与EMUI很相似,谷歌开始“后悔”了
- 嫦娥四号成功登陆月球背面 嫦娥四号奔向月球背面
- 海底里面有什么奇妙的生物 海底中最可怕的生物
- 与对面人家门对门风水不好 教你门对门风水如何破解
- 家纺面料知识你了解多少
- 三星堆面具的意义 三星堆青铜面具的意义
- 洗面奶|关于洗脸那件事,遇到这几款就试试吧!
- 食客|因鱼钩数量超标,湖北一男子在长江钓鱼被抓!或面临“刑责”