iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中有哪些列类型
  • 508
分享到

MySQL中有哪些列类型

2024-04-02 19:04:59 508人浏览 薄情痞子
摘要

Mysql中有哪些列类型,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  mysql列类型选择和查询效率有怎样的联系  ■使用定长列,不使用可

Mysql中有哪些列类型,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

  mysql列类型选择和查询效率有怎样的联系

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

  ■在较短的列能够满足要求时不要使用较长的列。如果正使用的是定长的CHAR列,应该使它们尽量短。如果列中所存储的最长值为40个字符,那么就不要将其定义为CHAR(255);只要定义为CHAR(40)即可。如果能够使用MEDIUMINT而不是BIGINT,表将会更小(磁盘I/O也较少),其值在计算中也可以处理得更快。

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

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

  ■使用PROCEDUREANALYSE()。如果使用的是Mysql3.23或更新的版本,应该执行PROCEDUREANALYSE(),查看它所提供的关于表中列的信息:

  相应输出中有一列是关于表中每列的最佳列类型的建议。第二个例子要求PROCEDUREANALYSE()不要建议含有多于16个值或取多于256字节的ENUM类型(可根据需要更改这些值)。如果没有这样的限制,输出可能会很长;ENUM的定义也会很难阅读。根据PROCEDUREANALYSE()的输出,会发现可以对表进行更改以利用更有效的类型。如果希望更改值类型,使用ALTERTABLE语句即可。

  MySQL列类型选择和查询效率有怎样的联系

  ■将数据装入BLOB。用BLOB存储应用程序中包装或未包装的数据,有可能使原来需要几个检索操作才能完成的数据检索得以在单个检索操作中完成。而且还对存储标准表结构不易表示的数据或随时间变化的数据有帮助。在第3章ALTERTABLE语句的介绍中,有一个例子处理存储来自WEB问卷的结果的表。该例子中讨论了在问卷中增加问题时,怎样利用ALTERTABLE向该表追加列。

  解决该问题的另一个方法是让处理Web的应用程序将数据包装成某种数据结构,然后将其插入单个BLOB列。这样会增加应用程序对数据进行解码的开销(而且从表中检索出记录后要对其进行编码),但是简化了表的结构,并且不用在更改问卷时对表进行更改。另一方面,BLOB值也有自己的固有问题,特别是在进行大量的DELETE或UPDATE操作时更是如此。删除BLOB会在表中留下一个大空白,在以后将需用一个记录或可能是不同大小的多个记录来填充。

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

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

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

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

看完上述内容,你们掌握MySQL中有哪些列类型的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中有哪些列类型

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL中有哪些列类型
    MySQL中有哪些列类型,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  MySQL列类型选择和查询效率有怎样的联系  ■使用定长列,不使用可...
    99+
    2024-04-02
  • python序列类型有哪些
    这篇文章主要介绍了python序列类型有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python序列类型有哪些文章都会有所收获,下面我们一起来看看吧。   python...
    99+
    2024-04-02
  • MySQL中有哪些索引类型
    本篇文章给大家分享的是有关MySQL中有哪些索引类型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.B-Tree索引因为存储引擎不⽤进⾏全表扫描来获取数据,直接从索引的根节点...
    99+
    2023-06-14
  • MySQL中有哪些字段类型
    这篇文章给大家介绍MySQL中有哪些字段类型,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  MySQL字段类型都有哪些  类型描述  INT一种数值类型,值的范围如下带符号的-214...
    99+
    2024-04-02
  • mysql中有哪些数据类型
    这篇文章给大家分享的是有关mysql中有哪些数据类型的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql数据类型有:BOOL、TINY INT、INT、BIG INT、FLO...
    99+
    2024-04-02
  • MySQL中有哪些日志类型
    MySQL中有哪些日志类型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。MySQL中有六种日志文件,分别是:重做日志(redo log)、...
    99+
    2024-04-02
  • mysql中有哪些时间类型
    这期内容当中小编将会给大家带来有关mysql中有哪些时间类型,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。        在mys...
    99+
    2024-04-02
  • MySQL中有哪些数值类型
    今天就跟大家聊聊有关MySQL中有哪些数值类型,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。数值类型 MySQL 的数值数据类型可以大致划...
    99+
    2024-04-02
  • python的序列类型有哪些
    python中序列的类型:1.可变序列,创建序列后可以改变序列的元素;2.不可变序列,创建序列后序列的元素无法修改;3.容器序列,存放的是实际对象的引用;4.扁平序列,存放的是对象的值;python中序列的类型有以下几种可变序列可变序列是指...
    99+
    2024-04-02
  • python列表中的元素类型有哪些
    Python列表中的元素类型可以是任何类型,包括但不限于以下类型: 数字类型:整数(int)、浮点数(float)、复数(comp...
    99+
    2024-02-29
    python
  • mysql中的数据类型有哪些
    今天就跟大家聊聊有关mysql中的数据类型有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、数据类型是什么?数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数...
    99+
    2023-06-14
  • MySQL中有哪些表分区类型
    本篇文章给大家分享的是有关MySQL中有哪些表分区类型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 一、什么是表分区 通俗地讲表分区是将...
    99+
    2024-04-02
  • mysql中字符串类型有哪些
    mysql中字符串类型有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。说明char和varchar都用来保存MySQL中的短字符串。两者的主要区别在于存储方式的不同:c...
    99+
    2023-06-20
  • mysql索引类型有哪些?
    在Mysql数据库当中,我们经常会谈到Sql语句,当然也会谈到索引优化,那么在数据库当中有哪些索引类型呢,博主在这里进行分享,希望对大家能有所帮助。 目录 1、B-Tree索引: 2、Hash索引: 3、Full-text索引: 4、...
    99+
    2023-09-07
    数据库
  • MySQL字段类型有哪些
    本篇文章给大家分享的是有关MySQL字段类型有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。MySQL支持大量的列类型,它可以被分为3类:...
    99+
    2024-04-02
  • mysql索引类型有哪些
    这篇“mysql索引类型有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql索引...
    99+
    2024-04-02
  • mysql有哪些数据类型
    这篇文章给大家介绍mysql有哪些数据类型,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、数值类型数值是诸如32 或153.4 这样的值。mysql支持科学表示法,科学表示法由整数或浮点数后跟“e”或“E”、一个符号...
    99+
    2023-06-14
  • mysql 有哪些数据类型
    本篇文章给大家分享的是有关mysql 有哪些数据类型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。tinyint , smallint ,me...
    99+
    2024-04-02
  • mysql数据类型有哪些
    这篇文章主要介绍mysql数据类型有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先要了解其支持的数据类型。mysql支持所有标准的sql数据类型,包括三类:数值型,日期型,字...
    99+
    2024-04-02
  • mysql日期类型有哪些
    mysql日期类型有DATE、TIME、DATETIME、TIMESTAMP、YEAR。详细介绍:1、DATE,用于存储日期,只能存储日期,不能存储时间部分;2、TIME,用于存储时间,格式为只能存储时间,不能存储日期部分;3、DATETI...
    99+
    2023-07-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作