当前位置:首页 > 日记 > 正文

MySQL优化表结构优化的5大建议(好的数据类型选择)

MySQL优化表结构优化的5大建议(好的数据类型选择)
不知道N年前的3种数据库设计范式,也不是完全适用的。在这里,我已经安排了一些较为常见的数据库表结构优化设计技巧,希望对大家有用。

由于MySQL数据库是基于(行)数据库,以及数据库IO操作是基于网页(块)模式,也就是说,如果我们的每个记录占用的空间量会降低,会使存储的每个页面数量增加的数据,所以每个IO可访问的行的数量也有所增加。相反,处理相同数量的数据,需要访问的页面将减少,即减少IO操作数,且性能直接提高。另外,因为我们的记忆是有限的,增加数据行存储在每个页面的数量是相等的增加每个内存块的数据量,提高数据打在内存转换,即概率,缓存命中率。

1。数据类型的选择
数据库操作最耗时的操作是IO处理,大部分数据库操作超过90%的时间花在IO读写上,因此尽可能减少IO的读写量,可以大大提高数据库操作的性能。

我们不能改变,需要存储在数据库中的数据,但我们可以花一些时间在这些数据的存储。下列关于字段类型主要用于记录和大量数据的大量场景的优化建议,因为好的数据类型设置可能带来的维护成本的提高,在优化可能会带来其他问题。

1:非数值类型不能,但不能使用双倍,不仅存储长度,而且也有问题的准确性。同样,不建议使用十进制小数的固定精度小数。建议乘固定多为整数的存储,大大节省存储空间,不会带来任何额外的维修费用。为整数的存储,在数据量大的情况下,建议将TINYINT / INT或BIGINT的选择,因为由三所占用的存储空间也有很大的不同,这是肯定的,没有负数的领域都会用到。建议添加无符号定义。当然,如果数据库中有少量数据,也不能严格区分三个整数类型。
2。字符类型:非万不得已不要使用文本数据类型的方法决定其性能不及CHAR或VARCHAR类型的治疗,固定长度的字段,建议使用char类型,不定长字段使用varchar,只设置最合适的长度,而不是很随便的一个大的最大长度的限制,因为不同的长度范围内,MySQL将有不同的存储处理。
三.时间型:使用时间戳类型尽可能多的,因为其存储空间只需要一半的DateTime类型,数据类型需要精确到某一天,这是推荐使用的数据类型,因为其存储空间只需要3字节,小于时间戳。不推荐存储一个Unix时间戳值通过int类,因为它太不直观,会带来不必要的麻烦来维护,它不会同时带来任何好处。
4.enum集的状态字段,您可以尝试使用枚举来存储,因为它可以大大减少存储空间,甚至如果你需要增加新的类型,只要添加,修改结构不需要重建表数据。如果它是存储预定义的属性数据你可以尝试使用设置类型,即使有各种属性,它也可以很容易,并且可以节省一点存储空间。
5.lob型:强烈反对存储LOB数据类型的数据库。虽然数据库提供了这样的功能,但这并不是他擅长的。我们应该让合适的工具做他擅长的,所以我们可以发挥到了极限。在数据库中存储LOB数据就像让营销专业人士在学校学到年前一些java写的java代码。
二、字符编码
字符集编码直接决定在MySQL数据的存储,因为使用不同的字符集相同的内容显示的占用空间会有较大的差异,因此通过适当的字符集的使用,可以帮助我们尽可能减少数据量,进而减少IO操作数。

1。纯拉丁字符可以表达,也不需要选择其他字符码外latin1,这节省了大量的存储空间。
2,如果我们可以肯定的是,我们不需要存储多语言,不需要使用UTF8或其他Unicode字符类型。这样会造成大量的存储空间浪费。
的3.mysql数据类型可以精确到字段,所以当我们需要存储在数据库中的多字节数据,可以利用在不同的数据类型,大大减少了数据存储量不同的领域不同的表,从而减少IO操作的数量和提高缓存命中率

三。适当的分离
有时,我们可能希望将完整的对象与数据库表匹配,这有利于应用程序开发,但有时也会给性能带来很大的问题。

当类似于文本或varchar类型领域存在在我们的桌子,如果我们访问表的大部分时间你不需要这个领域,我们应该毫不犹豫地分裂成单独的表中,为了减少公共数据占用的存储空间。这一方式的优点是存储在每个数据块的数量可以大大增加,这可以减少物理IO次数,提高缓存命中率在记忆。

以上几点进行优化,降低每个记录存储空间的大小,让更多的记录可以存储在不同的数据库,从而减少IO操作和提高缓存命中率。以下优化建议可能不被许多开发商的理解,因为这是一个典型的反范式设计,和这也与上面几个优化建议。

四,适度冗余

为什么我们必须是多余的这是否增加了每个数据的大小,并减少了每个数据块可以存储的记录数
事实上,这样做将增加每个记录的大小,并减少可以存储在每个记录中的数据的数量,但在某些情况下,我们仍然需要这样做。

经常被引用的独立的小字段,只能通过联接2(或更多)大表获得。
这样的场景,因为每个连接只是为了获得一个小字段的值,加入的记录是大的,这将导致很多不必要的IO。它可以通过时间空间的方式进行优化,但是冗余也需要确保数据的一致性不会被破坏,确保更新更新时冗余字段的更新。

五。尽量不要使用null。

空类型是非常特殊的,和SQL是很难优化。虽然MySQL null类型不同于Oracle的空,它将进入指数,但如果它是一个综合指数,null类型字段将大大影响整个指数的效率。此外,在指数空的处理也非常特殊,它也需要额外的存储空间。
很多人认为空会节省一些空间,所以尽量让空节省IO,但大多数时候会适得其反,虽然空间可能确实有一些积蓄,它带来了很多其他的优化问题,不仅将IO,但增加了IO SQL的量。所以尽量保证这个默认值是无效的,这也是一个很好的表结构设计优化的习惯。

相关文章

设置所有的Windows7文件夹铺平

设置所有的Windows7文件夹铺平

设置,电脑软件,Windows 7最近改变了,真是没用,很多功能都找不到的地方。但我认为,在很长一段时间后,它会像XP一样好。 U3000 U3000 默认情况下,Windows 7的文件是详细安排的,但我觉得使用它不方便,或者使用XP的方式。你怎样把所有文件都放在一个…

warez.exe过程的意义是什么

warez.exe过程的意义是什么

意义,过程,电脑软件,warez,exe,评论:对warez.exe工艺简介 进程文件:商业warez.exe 进程名称:破解P2P客户端 过程类别:安全风险的过程 英文描述: warez.exe是一个过程,属于盗版P2P在互联网上共享文件的文件共享客户端。该程序是系统运行的非必要…

如何设置Word2003文档到宽屏屏幕

如何设置Word2003文档到宽屏屏幕

屏幕,文档,宽屏,如何设置,电脑软件,每个人的电脑都是不同的,显示器是不同的,有的是平板的,有的是液晶的,有的是宽的。在办公室里,显示器的效果会有所不同。尤其是在使用宽屏显示器的朋友时,运行word文档时,显示屏两侧会有更多的空位。那么我们如何…

如何在Win8系统是否关闭4种Win8系

如何在Win8系统是否关闭4种Win8系

系统,方法,如何在,电脑软件,点评:以前的Windows系统的关机按钮都在开始菜单,但有没有经典的Windows 8开始菜单,Windows8关掉机器在哪里关机按钮呢答案是在Metro接口中!但是有没有更简单的方法关掉机器呢是的,有4种方法可以将Win8了。 以前的Wind…

过多线程性能测试工具

过多线程性能测试工具

性能测试工具,线程,电脑软件,大量的实验已经进行过的最近,和它的使用及注意事项的特点进行了总结。Sysbench是一个多线程的性能测试工具,可以进行性能测试,如CPU、内存和IO /数据库。但大部分时间我用它测试MySQL OLTP。它可以测量它可以测量…

通过特定程序了解PHP中的抽象类

通过特定程序了解PHP中的抽象类

抽象类,程序,电脑软件,PHP,当然,可能有一个以上的根类,用来实现不同的功能。在设计良好的系统中,每个根类都应该有一个有用的接口,可以由应用程序代码使用。如果我们的代码的应用程序设计为与根类一起工作,那么它也可以从根类中继承任何继承根类…

打开QQ视频聊天和崩溃到QQ视频音频

打开QQ视频聊天和崩溃到QQ视频音频

音频,天和,崩溃,设置,视频聊,问题: 我的电脑看电影或电视剧,比如视频很正常,但是一打开QQ视频聊天,电脑就死了。参考在线解决方案,输入QQ视频和音频想设置,但进入死了,无法调整。我不知道该怎么办。 答案uff1a 访问QQ视频聊天就死了,有以下可能: …

PHP开发环境配置(mysql数据库安装教

PHP开发环境配置(mysql数据库安装教

数据库安装,教程,开发环境配置,电脑软件,PHP,一、mysql安装 运行MySQL的安装程序(mysql-essential-5.1.40-win32 .msi) 选择要自定义的安装类型。 单击更改按钮更改安装目录。 将安装目录更改为D磁盘(可以根据自己的系统进行更改) 单击安装按…

对sgmain.exe-sgmain的作用是什么

对sgmain.exe-sgmain的作用是什么

作用,电脑软件,sgmain,exe,点评:sgmain.exe SpywareGuard的网络安全工具的一部分提供实时上网保护 进程文件:sgmain或sgmain.exe 进程名称:SpywareGuard 过程类别:安全风险的过程 英文描述: 是的sgmain.exe SpywareGuard互联网安全效用,你的上…

Linuxbacktrak无线配置教程

Linuxbacktrak无线配置教程

教程,配置,电脑软件,Linuxbacktrak,评论:我没有用回溯来破解它,因为它看到了你变得越来越安静,你能做的越多,并且想知道更多。 我用回溯法不去破解,因为它有很多词要看。 你变得越安静,你就越能听到。 让我说一下如何回溯无线连接到互联网,但BT的…

国家一级演员田蕤涉嫌猥亵被逮捕

国家一级演员田蕤涉嫌猥亵被逮捕

国家一级演员田蕤涉嫌猥亵被逮捕 女受害人已确诊重度抑郁,上海,显示,律师,市公安局,微信,职业规划,选择,微信聊天记录,近日,国家一级演员田蕤被曝猥亵上海戏剧学院毕业生。当事人A女士告诉记者,目前田蕤已被逮捕。记者在一份盖有上海市公安局松江分局…

Word2003选择所有相同格式的文本

Word2003选择所有相同格式的文本

文本,选择,格式,电脑软件,1,如果不开;样式和格式任务窗格;(任务窗格:窗户在Office程序中提供常用命令的位置是合适的,尺寸小,可以使用这些命令,一边继续处理文件,请单击格式);;工具栏(工具栏:包含按钮和选项,可以用来执行命令。要显示工具栏,按下Alt键按下S…