我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么给自己的让MySQL数据库减肥

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么给自己的让MySQL数据库减肥

这篇文章将为大家详细讲解有关怎么给自己的让MySQL数据库减肥,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

  数据库优化工作中,使数据尽可能的小,使表在硬盘上占据的空间尽可能的小,这是最常用、也是最有效的手段之一。因为缩小数据,相对来说可以提高硬盘的读写速度,并且在查询过程中小表的内容处理时所占用的系统资源比较少。同理,如果在比较小的列上设置索引的话,其索引所占用的资源也会比较少。那么数据库管理员该如何给自己的数据减肥呢?下面亿速云小编来讲解下数据库管理员该如何给自己的让MySQL数据库减肥?

  数据库管理员该如何给自己的让MySQL数据库减肥

  建议一:空值并不一定不占用空间

  在这里笔者先给大家扫盲一下。有些数据库管理员,认为空值不会占用系统资源,其实这是一个错误的认识。他们在数据库设计时,不喜欢将字段的属性设置为NOTNULL。而让用户根据自己的需要来输入数据。笔者认为,这种做法对于数据库的性能是不利的。

  笔者的意见是,如果有可能的话,尽量将列设置为NOTNULL,即不允许有空值。这么做的话,可以加快后续处理的速度,同时从数据存储来看还可以使得每列节省一位,从而达到数据减肥的目的。在实际工作中,如果有些情况不需要用户输入数据时,还可以通过默认字段来达到非空的目的。如在薪资系统中,可以将用户的工作年限默认设置为0,而不是空白。当然,如果确实需要NULL的话,也没有办法。但是作为数据库工程师来说,要尽量避免使用NULL值。

  建议二:使用尽量小的数据类型

  数据类型的大小也会影响到基础表的大小。如对于MEDIUMINT和INT两个数据类型,其都可以用来保存整数型的数据,只是其能够保存的精度不同而已。但是从存储数据的角度来看,前者所需要的存储空间要比后者节省25%左右。为此在能够使用MEDIUMINT的情况下,就不要使用INT。

  另外在定义数据长度的时候,在满足需求的情况下,也要尽量的短。如现在薪资考核系统中有员工编码一个字段。如果企业员工编码已经确定,有五位字符构成。那么在定义字段时,只需要定义5个字符的长度。这不仅可以缩小存储空间,而且还可以起到一定的数据校对功能。当用户输入的编码长度超过5位时,数据将无法保存。

  虽然说保存某个数据可以有很多数据类型可以选择,也可以定义比较大的字符位数。但是选择尽量小的数据类型,可以帮助降低数据存储空间,达到数据减肥的目的。从而进一步提升数据库的性能。

  数据库管理员该如何给自己的让MySQL数据库减肥

  建议三:索引与数据表大小的关系

  笔者在文章一开头就谈到过,如果对于比较小的列设置索引,那么索引也将占用比较少的资源。可见,索引与数据表大小也有紧密的联系。在合适的地方、合适的时机设置合适的索引,也可以实现对数据减肥的目的。

  如通常情况下,每张数据表可能会有多个索引,但是主索引往往只有一个。为此对于每张表的主索引应该考虑尽量的短小精悍。这可以帮助数据库更快的进行识别。

  再如尽量对前缀进行索引。如现在有一张表,需要对某个列设置索引。而这个列有一个特点,即在头几个字符上有唯一的前缀。如果存在这种情况的话,那么紧紧索引这个前缀,而不是全部,效果会更好。在MySQL数据库中,支持对一个字符列的最左边部分创建一个索引。这也就是说,数据库会将某个字段根据一定的规则拆分为前后两个部分。拆分后前面一部分的数据如果能够保持唯一,那么就只需要对前面一部分设置索引即可,而不需要对整个字段的数据设置索引。这无疑可以缩小索引所占用的资源,实现减肥的目的。更短的索引,能够提供更快的查询速度。因为它们所占用的硬盘空间更少,而且他们将在索引缓存中保存更多的访问。从而降低硬盘的搜索次数,提高查询的效率。

  最后需要注意的就是,索引不能够滥用。使用索引确实可以提高数据的处理能力,但是索引同时也会带来额外的开销。只有这个收益大于开销时,使用索引才能够提升数据库的性能。否则的话,则会起到相反的效果。如某个表需要进行快速的存储,如果在这个表上设置过多的索引,索引就会起到副作用。对此笔者建议,如果主要通过搜索列的组合来存取一个表,那么最好对他们只设置一个索引。当然,这个索引部分应该是日常工作中最常用的列。在不得已的情况下,如果需要使用多个索引的话,那么最好能够以更多的副本使用列来获得更好的索引压缩。从而降低因为使用了多个索引而增加的资源消耗。

  建议四:在需要“丰满”的地方还是不能够节省

  一个女人,该瘦的地方要瘦,该丰满的地方要丰满。其实数据库也是如此。能够节省硬盘空间的地方,就要节省。而不能够节省的地方,则不能够为了减肥而将其精简下来。有时候这会起到适得其反的效果。

  笔者以Varchar为例。如在MyISAM标中,如果没有任何可变长的列,那么最好使用固定大小的数据类型。虽然采用固定长度的数据类型,往往会浪费一定的存储空间。因为如果用户输入的数据不足,采用固定长度的话,数据存储时仍然会按这个固定的长度来存储。但是在这种情况下,能够用固定长度的,还是要使用固定长度。因为这种情况下虽然会浪费一定的硬盘空间,但是却可以提高数据的查询速度。

  可见,并不是在任何情况下对数据减肥都可以提高数据库的性能。这就好像节支开源,这个节省要节省在刀刃上。否则的话,不但不能够节支,而且还会搬起石头砸自己的脚。通俗的说,就是该瘦的地方要瘦,该丰满的地方要丰满。记住这句话,就对了。

  建议五:将表分割以实现减肥的目的

  蚂蚁在搬食物时,如果某块食物过大,无法搬动的话,蚂蚁则可能会将这个块食物进行分割,直到其搬得动为止。这就是分蛋糕原理。其实这种现象在日常工作中经常常见。如我们有一张数据库表格,如果里面的纪录非常多,那么表格的允许速度会非常的慢。在这种情况下,可以根据一定的规则将表分为多个工作簿。如现在有一份企业员工的考勤信息。对这个表进行查询、排序、统计时,等待时间非常的长。此时就可以根据部门将其分割成不同的工作簿,然后再对其进行相关的数据分析。此时虽然工作量会大一点,但是其处理的速度会变快许多。

  根据这个原理,在数据库优化时,可以将一个经常被扫描的大表分割为2个或者2个以上的表示非常有益的。如在日常工作中,笔者现在有一个动态格式的数据表,并且这个数据是使用一个扫描表时,就会用这个来找出相关行的比较小的静态格式的表。

  通过这个表的拆分,可以将一块大蛋糕分为几块小的蛋糕,以利于后续数据的统计与分析。当然这个效果的好坏,直接跟这个拆分的规则有关。关于表如何拆分才能够达到理想的效果,这又是一个比较大的话题。由于这里篇幅有限,笔者不做过多的说明。或许在后续的文章中,笔者会以这命题进行展开,给大家做详细的说明。

关于怎么给自己的让MySQL数据库减肥就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么给自己的让MySQL数据库减肥

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

下载Word文档

猜你喜欢

plsql怎么创建自己的数据库

要创建自己的数据库,可以按照以下步骤进行:1. 安装Oracle数据库软件:首先需要下载并安装Oracle数据库软件。可以从Oracle官方网站或其他可靠来源下载适合你操作系统的版本。按照安装向导的指示进行安装。2. 创建数据库实例:安装完
2023-09-14

阿里云怎么删除自己数据库

简介在使用阿里云服务器时,有时候我们需要删除自己的数据库,可能是由于项目结束、数据迁移或者其他原因。本文将介绍如何在阿里云上安全地删除自己的数据库。删除数据库的方法1.登录阿里云控制台首先,打开浏览器,访问阿里云官方网站,并使用您的账号登录到阿里云控制台。2.进入数据库管理页面在阿里云控制台中,点击左侧导航栏中的“数据
阿里云怎么删除自己数据库
2024-01-15

自己怎么搭建云数据库服务器

要搭建云数据库服务器,您可以按照以下步骤进行操作:1. 选择合适的云服务提供商:首先,选择一家可靠的云服务提供商。2. 注册账号并创建云计算实例:在选择的云服务提供商网站上注册账号,并根据其教程创建一个云计算实例。3. 选择合适的数据库软件
2023-08-09

MySQL数据库怎么给表设置约束

今天小编给大家分享一下MySQL数据库怎么给表设置约束的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、PK(主键约束)1、
2023-06-29

如何用C++自己实现mysql数据库的连接池?

为什么是mysql?现在几乎所有的后台应用都要用到数据库,什么关系型的、非关系型的;正当关系的,不正当关系的;主流的和非主流的, 大到Oracle,小到sqlite,以及包括现在逐渐流行的基于物联网的时序数据库,比如涛思的TDengine,咱们中国人自己的开
如何用C++自己实现mysql数据库的连接池?
2015-05-02

怎么查看mysql自带的数据库

要查看MySQL自带的数据库,可以使用以下命令:登录MySQL数据库服务器:mysql -u username -p输入密码后,可以查看所有的数据库:show databases;可以看到MySQL自带的数据库,如:information_
怎么查看mysql自带的数据库
2024-04-16

pytorch怎么制作自己的数据集

要制作自己的数据集,可以按照以下步骤操作:1. 准备数据:将数据整理成所需的格式。根据你的任务和数据类型,可能需要将数据转换为图像、文本、CSV等格式。2. 创建一个自定义数据集类:在PyTorch中,可以通过创建一个继承自torch.ut
2023-10-09

mysql怎么给用户授权某个数据库

在MySQL中,给用户授权某个数据库可以通过以下步骤实现:连接到MySQL数据库服务器:mysql -u root -p创建一个新用户(如果用户不存在的话):CREATE USER 'new_user'@'lo
mysql怎么给用户授权某个数据库
2024-04-09

如何在简历中突显自己的MySQL数据库技能?

如何在简历中突显自己的MySQL数据库技能?MySQL是目前世界上最受欢迎和广泛使用的开源关系型数据库管理系统。在当今的信息化时代中,数据库技能对于许多职业来说变得愈发重要。无论您是一名软件工程师、数据分析师还是运维人员,突显自己的MySQ
2023-10-22

pytorch中怎么创建自己的数据集

在PyTorch中,可以通过继承torch.utils.data.Dataset类来创建自己的数据集。以下是一个简单的示例代码:import torchfrom torch.utils.data import Datasetclass
pytorch中怎么创建自己的数据集
2024-04-08

pytorch中怎么加载自己的数据集

在PyTorch中,可以通过创建一个自定义的数据集类来加载自己的数据集。首先,需要导入以下必要的库和模块:```pythonimport torchfrom torch.utils.data import Dataset, DataLoad
2023-10-09

pytorch怎么加载自己的图片数据集

本文小编为大家详细介绍“pytorch怎么加载自己的图片数据集”,内容详细,步骤清晰,细节处理妥当,希望这篇“pytorch怎么加载自己的图片数据集”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.ImageFo
2023-07-02

excel怎么筛选出自己想要的数据

这篇文章主要讲解了“excel怎么筛选出自己想要的数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“excel怎么筛选出自己想要的数据”吧!excel筛选出自己想要的数据:1、首先选择表格自
2023-07-02

编程热搜

目录