iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >使用数据库分区的原因及好处是什么
  • 196
分享到

使用数据库分区的原因及好处是什么

2024-04-02 19:04:59 196人浏览 泡泡鱼
摘要

这篇文章主要介绍“使用数据库分区的原因及好处是什么”,在日常操作中,相信很多人在使用数据库分区的原因及好处是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”使用数据库分区的

这篇文章主要介绍“使用数据库分区的原因及好处是什么”,在日常操作中,相信很多人在使用数据库分区的原因及好处是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”使用数据库分区的原因及好处是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

什么是数据库分区?

分区是将表和索引分成较小的部分,甚至将其细分为较小的部分。可以将它想象成在一个大仓库(一张大桌子)中存放着数百万本不同主题和年份(例如2000–2019年)的不同杂志。分区意味着您将把它们组织在那个大仓库内的不同房间中。它们仍然属于一个仓库,但是现在您根据数据库分区策略在逻辑级别上对它们进行分组。

使用数据库分区有什么好处?

一个好的分区策略是可行的,原因有很多,例如更好的性能,更好的可管理性,更高的可用性或负载平衡。

(1) 更好的性能

如果以上面的杂志仓库为例,您正在寻找2009年10月发行的“体育画报”,并且在发行年份对仓库进行了分区,则只需查看房间或找到您想要的2009年分区。现在,想象一下,在仓库的一个“  2009”房间内,您放了几个大盒子,然后按照主题或出版物将杂志放在这些盒子里(“体育画报”,“专业摄影师”,“钓鱼”英雄”,…)。这将创建一个子分区,这将使查找所需的杂志变得更加容易,因为您将不再需要浏览所有《  2009年》杂志,但是您可以直接进入2009年会议室,然后直接转到“  “体育画报”框。这就是性能的划分。现在,如果您将不同的杂志放在柜子里,而杂志的所有背面(标题和月份/年份)都在外面,那将与添加索引相同。这样一来,您就可以快速找到正确的杂志并挑选出来,而不必挑选每本杂志并阅读整本杂志,直到找到所需的杂志为止。而且,如果您需要来自两个或多个不同分区(房间,盒子)的数据(杂志),则可以让两个或多个进程(人员)在寻找它,同时您仍可以确保他们不会两次查看同一部分。

(2) 更好的可管理性和负载平衡

您可以将不同的逻辑分区存储在不同的物理磁盘上,甚至在某些情况下甚至可以存储在服务器上。这样,在一个分区/磁盘/服务器上工作并不一定意味着其他分区必须脱机。维护也是如此,如果仅保留最近10年的数据,并且按年范围对表进行分区,则可以轻松地删除(或备份和删除)最早的分区。回到仓库比较,如果您每年将仓库划分为多个房间,并且在2011年房间中完成工作,那么其他所有房间仍然可以使用。如果要删除2000年的所有杂志,则只需从一个房间中取出所有东西,而不必每年浏览每本杂志。

(3) 更高的可用性

由于故障或其他原因造成的停机时间不一定会对其他分区产生影响。备份和恢复也是如此,您可以对每个分区进行独立于其他分区的操作,从而减少了停机时间。

什么时候应该对我的表进行分区?

分区策略中需要考虑以下几件事:

  • 大表始终是一个很好的分区候选对象,超过2Gb的一切都是一个开始。

  • 如果您的表中包含历史数据,并且数据将按时间顺序添加。例如,如果您按月或天为基础按批次加载数据,则更是如此。在这种类型的分区中,一个分区只能保留最新的分区可更新,而其他分区(旧)则是只读的。

  • 如果您需要在不同类型的存储(在某些情况下甚至是服务器)之间分配表。例如,大多数查询都在最近三年的分区上运行,但是您需要在表中保留10年的数据。最古老的7年很少被查询。这样,您可以将最新的三个分区放置在高性能SSD驱动器上,而将最旧的7个分区放置在较旧和较便宜但速度较慢的HD驱动器上。

为什么不使用索引而是分区?

好吧,索引很好。他们甚至很棒!在您的数据库性能工具箱中,它们绝对是必不可少的工具。但是索引非常擅长检索一小部分数据,尤其是散布在整个表中的数据。如果索引可以为您提供超过20%的数据,则可以认为它们最终表现最佳,而真正的转折点大概是数据的1%-5%。但是,当然,这很大程度上取决于许多不同的因素,例如服务器,设置,数据,天气(不,不是天气!),……最重要的是:不要考虑分区或索引。

在一个好的分区策略中,仍然有很多空间和机会可以很好地使用索引。例如,我上面的杂志仓库示例,在仓库内部每年进行分区,在房间内部按出版物进行分区。通过使标题/月份在橱柜而不是框内(这将创建索引)更加可见,从而留下了更多提高性能的机会。

我可以基于什么数据库分区策略?

您在分区表中输入的每一行都应明确属于一个特定分区。分区键定义行将存储在哪个分区中。这个分区键可以是一个字段,也可以包含多个字段的组合,只要它是模棱两可的,那么就很独特。回到杂志的例子,您可以使用“出版年份”作为分区键,但是您不能将“包含汽车品牌的图片”用作每个品牌的分区键和分区,因为这意味着最新的“  Top Gear Magazine”需要同时位于“ Ferrari”和“ Aston Martin”分区中,并且还有更多。

有哪些不同类型的分区?

  • 范围分区

  • 列表分区

  • 哈希分区

  • 子分区

(1) 范围分区

按值范围进行分区。这意味着,如果分区键的值在该分区范围内,则对表进行分区,以使行属于特定分区。例如,杂志:我们每年将仓库分成多个房间。这意味着我们有范围分区,其中每个分区的范围从01–01-YYYY到31–12-YYYY。因此,如果我有一本杂志的发布日期为2015年5月,则它将进入2015年5月1日至2015年1月31日至2015年12月31日的范围分区。

间隔分区是范围分区的一种特殊类型,其中间隔分区中的范围始终基于时间,并且在将新数据添加到表中应属于新间隔范围的新数据时自动创建。

(2) 列表分区

通过列表对数据库进行分区,可以通过在表和每个分区的定义中定义分区键来显式控制和定义哪个值进入哪个分区:

sql> Create table magazines (Pub_Title varchar(150), Pub_Date (date)) partition by list(Pub_Title) (partition Pub_Title1 values(“Sports Illustrated”, “Mens Health”), partition Pub_Title2 values(“Vanity”, “Flair”), partition Pub_Title3 values(“Yoga Magazine”, “Zen Magazine”));

或者,以杂志为例,您可能已经可以从SQL中读取信息:我们将仓库按每个出版物标题划分为多个房间,但是对于每个不同的出版物标题,我们没有足够的房间,因此我们“列出”了每个房间几个。在第一会议室中,我们放置“体育画报”和“精神健康”;在第二会议室中,我们放置“虚荣”和“天才”;在第三会议室中,我们放置“瑜伽杂志”和“禅宗杂志”。有道理吧?

(3) 哈希分区

在哈希分区中,数据行根据分区键的哈希值映射到分区。如果要在没有明确业务或数据逻辑分区的表上使用分区,并且需要均匀分布的分区,则此功能很有用。例如,您有一个装满杂志的整个仓库,但出版物标题和出版日期是随机的。没有完整的年份,依此类推。但是,您希望将它们平均分配到仓库的十个不同房间中,以便以后需要取回一本(或多本)杂志时,可以同时派出十个人去寻找它们。十个不同的房间。比散列分区派上用场。例如,您选择出版物标题和出版物日期的组合作为分区键,然后让数据库对该键进行哈希处理,然后选择适当的分区,同时将所有杂志平均分配到所有房间。

(4) 子分区

子分区(也称为复合分区)是在分区内部创建分区。它是已经分区表的每个分区的进一步划分。让我们回到杂志仓库。我们首先每年将整套杂志放在不同的房间里。这是基于范围分区的第一个分区。接下来,在每个这些年级房间中,放入盒子,然后在每个盒子中放入所有具有相同出版物名称的杂志。由于在那个房间里,我们只已经有一个特定年份的出版物,所以在那个盒子里,我们只会有一个特定出版物名称和一个特定出版年份的杂志。因此,这非常容易且快速地找到“  Yoga Magazine”,“ 2017年11月版”。或者,在代码中:

SQL> Create table magazines (Pub_Title(varchar(150)), Pub_Date(date) Partition by rage (Pub_Year(Pub_Date)) Subpartition by list(Pub_Title) ( partition Pub_Title1 values(“Sports Illustrated”, “Mens Health”), partition Pub_Title2 values(“Vanity”, “Flair”), partition Pub_Title3 values(“Yoga Magazine”, “Zen Magazine”) );

如您所见,分区是除数据库工具箱中许多其他工具之外的有价值的工具,对于提高数据库性能,可用性和可维护性非常有用。选择哪种分区策略当然取决于您的数据,但也取决于您将要实现的特定数据库系统的技术可能性。

到此,关于“使用数据库分区的原因及好处是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: 使用数据库分区的原因及好处是什么

本文链接: https://www.lsjlt.com/news/56544.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用数据库分区的原因及好处是什么
    这篇文章主要介绍“使用数据库分区的原因及好处是什么”,在日常操作中,相信很多人在使用数据库分区的原因及好处是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”使用数据库分区的...
    99+
    2024-04-02
  • PHP数据库接口的作用及原因分析
    标题:PHP数据库接口的作用及原因分析 在Web开发领域中,数据库是至关重要的一部分,而PHP作为一种被广泛应用于服务器端开发的语言,与数据库之间的交互也显得尤为重要。为了方便PHP与...
    99+
    2024-03-12
    接口 数据库 php sql语句 防止sql注入
  • MySQL数据库索引选择使用B+树的原因是什么
    这篇文章主要介绍MySQL数据库索引选择使用B+树的原因是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、二叉查找树(1)二叉树简介:二叉查找树也称为有序二叉查找树,满足二叉查...
    99+
    2024-04-02
  • 需要分库分表的原因是什么
    这篇文章主要讲解了“需要分库分表的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“需要分库分表的原因是什么”吧!为什么要分库分表首先回答一下为什么要...
    99+
    2024-04-02
  • PHP更新数据库失败的原因是什么及怎么解决
    这篇“PHP更新数据库失败的原因是什么及怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP更新数据库失败的原因是什...
    99+
    2023-07-06
  • SQL数据库连接不上的原因及解决方法是什么
    SQL数据库连接不上的原因及解决方法可能有以下几种:1. 数据库服务未启动或停止:查看数据库服务是否已启动,如果未启动,需要启动数据...
    99+
    2023-09-22
    SQL数据库
  • sql数据库启动不了的原因及解决方法是什么
    SQL数据库启动不了的原因及解决方法可能有很多,以下是一些常见的原因及解决方法:1. 数据库服务未启动:检查数据库服务是否已启动,可...
    99+
    2023-09-04
    sql数据库
  • 服务器数据库损坏的原因是什么
    服务器数据库损坏的原因:1、事务日志文件丢失、损坏、被误删除或文件过大,导致硬盘的空间不足,数据库损坏;2、意外掉电或异常强制关机,...
    99+
    2023-02-13
    数据库损坏 数据库 服务器
  • MySQL数据库的原理及优点是什么
    MySQL数据库的原理及优点是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。MySQL数据库简称MySQL,是一款由瑞典MySQLAB公司...
    99+
    2024-04-02
  • AS400处理数据高效率的几个原因分别是什么
    本篇文章为大家展示了AS400处理数据高效率的几个原因分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。AS400传统写法比开放平台数据库执行SQL效率高的几...
    99+
    2024-04-02
  • php总是连接数据库不成功的原因是什么及怎么解决
    这篇文章主要介绍“php总是连接数据库不成功的原因是什么及怎么解决”,在日常操作中,相信很多人在php总是连接数据库不成功的原因是什么及怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php总是连接数据...
    99+
    2023-07-05
  • Oracle数据库中的分区表是什么
    在Oracle数据库中,分区表是通过将大表拆分为更小、更易管理的部分来提高性能和管理效率的技术。分区表将数据逻辑上分割成多个独立的部...
    99+
    2024-04-09
    Oracle
  • powerdesigner连接数据库报错是什么原因
    本篇内容主要讲解“powerdesigner连接数据库报错是什么原因”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“powerdesigner连接数据库报错是什么...
    99+
    2024-04-02
  • MySQL数据丢失的原因是什么及怎么解决
    这篇文章主要介绍了MySQL数据丢失的原因是什么及怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL数据丢失的原因是什么及怎么解决文章都会有所收获,下面我们一起来...
    99+
    2023-04-28
    mysql
  • 不要收缩数据库文件的原因是什么
    这篇文章主要为大家展示了“不要收缩数据库文件的原因是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“不要收缩数据库文件的原因是什么”这篇文章吧。关于收缩数据文...
    99+
    2024-04-02
  • SQL Server数据库复制失败的原因是什么
    SQL Server数据库复制失败的原因是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。原因:在复制数据库时,必须先停止mssqlse...
    99+
    2024-04-02
  • 数据库迁移如此复杂的原因是什么
    这篇文章主要介绍“数据库迁移如此复杂的原因是什么”,在日常操作中,相信很多人在数据库迁移如此复杂的原因是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”数据库迁移如此复杂的...
    99+
    2024-04-02
  • mongodb数据丢失的原因及解决方法是什么
    MongoDB数据丢失的原因可能有多种,包括硬件故障、网络故障、软件错误、人为操作错误等。以下是一些常见的原因和解决方法: 硬件...
    99+
    2023-10-21
    mongodb
  • 使用redis的原因是什么
    这篇文章给大家分享的是有关使用redis的原因是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的...
    99+
    2024-04-02
  • Go数组比切片好的原因是什么
    这篇文章主要讲解了“Go数组比切片好的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go数组比切片好的原因是什么”吧!前段时间有播放一条快讯,就是 Go1.17 会正式支持切片(S...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作