位置: 编程技术 - 正文

MySQL中数据类型相关的优化办法(mysql中数据类型为是否)

编辑:rootadmin

推荐整理分享MySQL中数据类型相关的优化办法(mysql中数据类型为是否),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql中数据类型有几类,mysql中数据类型的长度,mysql中数据类型有哪些,mysql中数据类型分为三大类,mysql中数据类型分为三大类,mysql中数据类型的长度,mysql中数据类型转换,mysql中数据类型有哪些,内容如对您有帮助,希望把文章链接给更多的朋友!

有助于效率的类型选择

1、使你的数据尽可能小

最基本的优化之一是使你的数据(和索引)在磁盘上(并且在内存中)占据的空间尽可能小。这能给出巨大的改进,因为磁盘读入较快并且通常也用较少的主存储器。如果在更小的列上做索引,索引也占据较少的资源。

你能用下面的技术使表的性能更好并且使存储空间最小:

·尽可能地使用最有效(最小)的类型。MySQL有很多节省磁盘空间和内存的专业化类型。

·如果可能使表更小,使用较小的整数类型。例如,MEDIUMINT经常比INT好一些。

·如果可能,声明列为NOT NULL。它使任何事情更快而且你为每列节省一位。注意如果在你的应用程序中你确实需要NULL,你应该毫无疑问使用它,只是避免缺省地在所有列上有它。

2、使用定长列,不使用可变长列

这条准则对被经常修改,从而容易产生碎片的表来说特别重要。例如,应该选择 CHAR 列而不选择 VARCHAR 列。所要权衡的是使用定长列时,表所占用的空间更多,但如果能够承担这种空间的耗费,使用定长行将比使用可变长的行处理快得多。

3、将列定义为 NOT NULL

这样处理更快,所需空间更少。而且有时还能简化查询,因为不需要检查是否存在特例 NULL。

4、考虑使用 ENUM 列

如果有一个只含有限数目的特定值的列,那么应该考虑将其转换为 ENUM 列。ENUM 列的值可以更快地处理,因为它们在内部是以数值表示的。

有关BLOB和TEXT类型1、使用BLOB和TEXT类型的优点

用 BLOB 存储应用程序中包装或未包装的数据,有可能使原来需要几个检索操作才能完成的数据检索得以在单个检索操作中完成。而且还对存储标准表结构不易表示的数据或随时间变化的数据有帮助。

MySQL中数据类型相关的优化办法(mysql中数据类型为是否)

2、使用BLOB和TEXT类型的可能弊端

另一方面,BLOB 值也有自己的固有问题,特别是在进行大量的 DELETE 或 UPDATE 操作时更是如此。删除 BLOB 会在表中留下一个大空白,在以后将需用一个记录或可能是不同大小的多个记录来填充。

除非有必要,否则应避免检索较大的 BLOB 或 TEXT 值。例如,除非肯定WHERE 子句能够将结果恰好限制在所想要的行上,否则 SELECT * 查询不是一个好办法。这样做可能会将非常大的 BLOB 值无目的地从网络上拖过来。这是存储在另一列中的 BLOB 标识信息很有用的另一种情形。可以搜索该列以确定想要的行,然后从限定的行中检索 BLOB 值。

3、必要的准则

对容易产生碎片的表使用 OPTIMIZE TABLE大量进行修改的表,特别是那些含有可变长列的表,容易产生碎片。碎片不好, 因为它在存储表的磁盘块中产生不使用的空间。随着时间的增长,必须读取更多的块才能取到有效的行,从而降低了性能。任意具有可变长行的表都存在这个问题, 但这个问题对 BLOB 列更为突出,因为它们尺寸的变化非常大。经常使用 OPTIMIZE TABLE 有助于保持性能不下降。

使用多列索引

多列索引列有时很有用。一种技术是根据其他列建立一个散列值,并将其存储在一个独立的列中,然后可通过搜索散列值找到行。这只对精确匹配的查询有 效。(散列值对具有诸如“<”或“>=”这样的操作符的范围搜索没有用处)。在MySQL 3.版及以上版本中,散列值可利用 MD5( ) 函数产生。散列索引对 BLOB 列特别有用。有一事要注意,在 MySQL 3..2 以前的版本中,不能索引 BLOB 类型。甚至是在 3..2 或更新的版本中,利用散列值作为标识值来查找 BLOB 值也比搜索 BLOB 列本身更快。

将 BLOB 值隔离在一个独立的表中

在某些情况下,将 BLOB 列从表中移出放入另一个副表可能具有一定的意义,条件是移出 BLOB 列后可将表转换为定长行格式。这样会减少主表中的碎片,而且能利用定长行的性能优势。

使用ANALYSE过程检查表列如果使用的是 MySQL 3. 或更新的版本,应该执行 PROCEDURE ANALYSE( ),查看它所提供的关于表中列的信息

它检验来自你的查询的结果并返回结果的分析。

max elements(缺省)是analyse将注意的每列不同值的最大数量。这被ANALYSE用来检查最佳的列类型是否应该是ENUM类型。

max memory(缺省)是在analyse尝试寻找所有不同值的时候应该分配给每列的最大内存量。

例如:

相应输出中有一列是关于表中每列的最佳列类型的建议。第二个例子要求 PROCEDURE ANALYSE( ) 不要建议含有多于 个值或取多于 字节的 ENUM 类型(可根据需要更改这些值)。如果没有这样的限制,输出可能会很长;ENUM 的定义也会很难阅读。

根据 PROCEDURE ANALYSE( ) 的输出,会发现可以对表进行更改以利用更有效的类型。如果希望更改值类型,使用 ALTER TABLE 语句即可。

MySQL下PID文件丢失的相关错误的解决方法 今天同事A找到我,说是MysqlserverX的负载很高,查询很慢。他自己捣鼓了一阵未果后,我们一起看了下。[root@redhatvar]#uname-aLinuxxxx2.6.-.el5#1SMPWedDec:

MySQL的一些常用的SQL语句整理 用SHOW显示已有的数据库句法:SHOWDATABASES[LIKEwild]如果使用LIKEwild部分,wild字符串可以是一个使用SQL的%和_通配符的字符串。功能:SHOWDATABASES列出在MySQL服

MySQL基本操作语句小结 1、使用SHOW语句找出在服务器上当前存在什么数据库:mysqlSHOWDATABASES;+----------+|Database|+----------+|mysql||test|+----------+3rowsinset(0.sec)2、创建一个数据库abccsmy

标签: mysql中数据类型为是否

本文链接地址:https://www.jiuchutong.com/biancheng/347630.html 转载请保留说明!

上一篇:Mysql存储过程中游标的用法实例(mysql存储过程是什么意思)

下一篇:MySQL下PID文件丢失的相关错误的解决方法(mysqlpid文件没有)

  • 公司购车购置税有优惠吗
  • 到期一次还本付息的债券投资摊余成本
  • 应发工资和实发工资计算公式excel
  • 加计抵减其他收益汇算清缴填哪里
  • 新税法下广告费和业务宣传费的扣除是怎样?
  • 新办商贸企业一般纳税人合同金额
  • 免征土地增值税
  • 事业单位预收账款属于什么科目
  • 费用和利润的比例
  • 企业销售赠券的增值税如何处理
  • 预收账款确认收入摘要怎么写
  • 不含税的营业收入是什么意思
  • 收到的抵债资产属不属于所有者权益
  • 平行登记要求总账
  • 土地罚款可以计入成本吗?
  • 企业为职工社保补缴怎么办理
  • 不能远程补报之前的税款所属期
  • 机打发票领回怎么录入
  • 对公账户验证款怎么记账
  • 资产负债表写错数字怎么改
  • 使用专项资金购买的固定资产 需要取得发票吗
  • 发票修复是怎么回事
  • 兼职劳务费个税怎么算
  • 房租税收怎么算?
  • 客户退回的发票怎么处理
  • 票据状态提示付款
  • 为什么电脑开启了摄像头但是看不见
  • 丢失空白发票怎么处罚
  • 生产企业原材料的订购与运输建模
  • 剑灵怎么截图正版
  • 电脑中毒后如何不装系统清理掉
  • 暂估成本会计分录
  • 施伦贝格尔
  • 固定资产清理如何计算增值税
  • 俄勒冈zip
  • element ui停止
  • echarts怎么样
  • 上下联的方法
  • 企业预付账款属于什么科目
  • 织梦cms为什么不维护了
  • 如何用python绘制
  • 最常用的成本核算表格
  • 变卖废旧物资的增值税税率
  • 资产负债表日后至财务报告批准报出日之间
  • 小规模销项税分录
  • 简易计税开票税率
  • 新版电子税务局怎么增加办税人员
  • mysql时间格式转换函数
  • 应交增值税转入未交增值税怎么算
  • 财产转让收入属于什么收入
  • 混凝土增值税发票税率
  • 暂估入库需要入什么科目
  • 营改增后不动产转让增值税
  • 如何加强存货管理,提高存货周转率
  • 来料加工和进料加工的相同之处
  • 本月购进金额怎么算
  • 抵债资产处置账务实例
  • 会计科目漏记怎么补记
  • 网吧出售
  • 总资产报酬率的公式
  • 小规模发票跨月冲红税款可以退回吗
  • 营业外收入的主要核算内容
  • 留存收益和未分配利润一样吗
  • 公司不报税会怎样法人有责任么
  • 日记账的建账工作
  • windows server 2008 硬盘格式
  • windows软件包2012能删吗
  • 如何关闭windows防护
  • win10更新后浏览器打不开网页
  • win8怎么查看隐藏文件
  • linux使用vi编辑文件
  • linux配置命令
  • win7电脑开机蓝屏无法进入系统怎么办
  • Win7旗舰版系统镜像文件
  • cocos2d官网
  • Android使用活动需要去什么进行注册
  • 批处理文件.bat
  • 谷歌编程之夏2021
  • jquery示例
  • ug10避让怎么设置
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设