数据库分区和分表的区别

数据库分区和分表的区别,第1张

分区、分表、分库的详细理解

一、什么是分区、分表、分库

分区

就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的

分表

就是把一张表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表明,然后操作它。

分库

一旦分表,一个库中的表会越来越多

将整个数据库比作图书馆,一张表就是一本书。当要在一本书中查找某项内容时,如果不分章节,查找的效率将会下降。而同理,在数据库中就是分区。

二、常用的单机数据库的瓶颈

问题描述

单个表数据量越大,读写锁,插入操作重新建立索引效率越低。

单个库数据量太大(一个数据库数据量到就是极限)

单个数据库服务器压力过大

读写速度遇到瓶颈(并发量几百)

三、分区

什么时候考虑使用分区?

一张表的查询速度已经慢到影响使用的时候。

sql经过优化

数据量大

表中的数据是分段的

对数据的操作往往只涉及一部分数据,而不是所有的数据

分区解决的问题

主要可以提升查询效率

分区的实现方式(简单)

mysql5 开始支持分区功能

四、分表

什么时候考虑分表?

一张表的查询速度已经慢到影响使用的时候。

sql经过优化

数据量大

当频繁插入或者联合查询时,速度变慢

分表解决的问题

分表后,单表的并发能力提高了,磁盘I/O性能也提高了,写操作效率提高了

查询一次的时间短了

数据分布在不同的文件,磁盘I/O性能提高

读写锁影响的数据量变小

插入数据库需要重新建立索引的数据减少

分表的实现方式(复杂)

需要业务系统配合迁移升级,工作量较大

分区和分表的区别与联系

分区和分表的目的都是减少数据库的负担,提高表的增删改查效率。

分区只是一张表中的数据的存储位置发生改变,分表是将一张表分成多张表。

当访问量大,且表数据比较大时,两种方式可以互相配合使用。

当访问量不大,但表数据比较多时,可以只进行分区。

常见分区分表的规则策略(类似)

Range(范围)

Hash(哈希)

按照时间拆分

Hash之后按照分表个数取模

在认证库中保存数据库配置,就是建立一个DB,这个DB单独保存user_id到DB的映射关系

1、右键点击我的电脑,然后选择“管理”,再点击“磁盘管理”。

2、然后选择需要进行分区的磁盘,点击右键,选择“压缩卷”。

3、之后系统会自动查询压缩空间。

4、接下来要选择需要压缩空间的大小,点击压缩。

5、此时出现一个“可用空间”,即刚才压缩出来的空间。

6、点击右键,选择“新建简单卷”。

7、选择“下一步”。

8、输入自己想要的大小,点击“下一步”。

9、选择“盘符”,单击“下一步”。

10、选择新建的简单卷的磁盘格式,点击“下一步”。

11、点击“完成”就ok啦。

服务器如果做了raid1 没必要再特别分区

数据最关键,分区不能挽救数据

就算你mysql,serve-u转载非系统盘,只要系统盘(c盘)比如中病毒,无法启动等等。存在mysql数据库里头的文件一样弄不出来。用计划任务备份mysql工具备份数据才是好方法

建议你分两个区,C盘大一点,D盘放点安装源文件什么的

经常备份mysql数据,再做个全硬盘ghost,就算系统坏了,ghost一下硬盘,导入mysql数据就能把数据损失降到最低


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/259912.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存