博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库分库分表,何时分?怎样分?
阅读量:5882 次
发布时间:2019-06-19

本文共 662 字,大约阅读时间需要 2 分钟。

随着互联网技术的成熟,我们的个人信息都存储在数据库之中,那么对于程序员的我们,对于数据库的优化又是怎样做到的呢?

一、数据切分 根据切分类型,可以分为两种方式:垂直(纵向)切分和水平(横向)切分 接下来给大家慢慢介绍: 1、垂直(纵向)切分

常见有垂直分库和垂直分表两种。 垂直分库就是根据业务耦合性,将关联度低的不同表存储在不同的数据库。 垂直分表是基于数据库中的“列”进行,某个表字段较多,可以新建一张扩展表,将不经常用或字段长度较大的字段拆分出去到扩展表去。 垂直切分的优点:

①解决业务系统层面的耦合,业务清晰 ②与微服务的治理类似,也能对不同业务的数据进行分级管理、维护、监控、扩展等。 ③高并发场景下,垂直切分一定程度的提升IO、数据库连接数、单机硬件资源的瓶颈。 当然了,任何事物的出现都有两面性,不足之处就是: ①部分表无法json,只能通过接口聚合方式解决,提升了开发的复杂度。 ②分布式事务处理复杂 ③依然存在单表数据量过大的问题 2、水平(横向)切分

根据表内数据内在的逻辑关系,将同一个表按不同的条件分散到多个数据库或多个表中,每个表中只包含一部分数据,从而使得单个表的数据量变小,达到分布的效果。 水平切分的优点: ①不存在单库数据量过大、高并发的性能瓶颈,提升系统稳定性和负载能力 ②应用端改造较小,不需要拆分业务模块 缺点: ①跨分片的事务一致性难以保证 ②跨库的join关联查询性能较差 ③数据多次扩展难度和维护量极大 综上,是我个人对于数据库性能的一些见解,欢迎大家在评论区留下自己的见解。

转载地址:http://sktix.baihongyu.com/

你可能感兴趣的文章
idea 使用maven plugin tomcat 运行正常,无法进入debug模式
查看>>
jsfl 添加代码
查看>>
ctype.h 字符分类与转换
查看>>
写在前面
查看>>
数据库设计时间字段
查看>>
shell文本操作
查看>>
CSS 中文字号、磅和像素对照关系
查看>>
PHP分页代码中的SQL语句可以换个写法
查看>>
加载样式js
查看>>
数据库之数据排序
查看>>
struts2将数据通过Json格式显示于EasyUI-datagrid数据表格
查看>>
牛客21天刷题_day#3
查看>>
Appium-We wanted {"required":["value"]} and you sent ["text","sessionId","id","value"]
查看>>
Classification Truth Table
查看>>
JVM学习:对象的创建和内存分配
查看>>
JavaScript基础精讲
查看>>
C++ 静态变量 全局变量 const
查看>>
vs 高级保存选项的设置
查看>>
Java读取文本指定的某一行内容的方法
查看>>
DLL编写中extern “C”和__stdcall的作用
查看>>