`
风雪涟漪
  • 浏览: 507216 次
  • 性别: Icon_minigender_1
  • 来自: 大连->北京
博客专栏
952ab666-b589-3ca9-8be6-3772bb8d36d4
搜索引擎基础(Search...
浏览量:9013
Ae468720-c1b2-3218-bad0-65e2f3d5477e
SEO策略
浏览量:18412
社区版块
存档分类
最新评论

Schema的优化和索引 - 选择最佳的数据类型 - 整数和实数

阅读更多

整数

总共有两种数字类型:整数和实数(有小数部分的)。如果你保存的是整数,使用下列的整型:TINYINT,SMALLINT,MEDIUMINT,INT或者BIGINT。它们分别需要8,16,24,32,以及64位的存储空间。它们存储的值范围为N就是它们使用的存储空间所需的位数。

 

整型有个一个可选择的参数,就是UNSIGNED,它不允许存储负数,而正数的最大上限变为之前的大约两倍左右。举个例子,一个TINYINT UNSIGNED存储的范围是0-255,而不是之前的-128-127.

 

有符号和无符号类型使用了相同大小的存储空间,它们的性能是一样的,因此使用哪种类型取决存储的数据范围。

 

你的选择决定了MySQL在内存和硬盘上存储数据的方式。然而,即使在32位的架构上,整型的计算常常使用64位的BIGINT.(例外的情况一般发生在使用DECIMAL或者DOUBLE计算的聚合函数上)。

 

MySQL允许你指定整型的“宽度”,比如INT(11).对大多数应用来说没有什么意义:它并不会约束值的范围,但是可以简单的指定MySQL交互工具的字符数。只是限制显示而已。对于存储和计算,INT(1)和INT(20)是等同的。

 

实数

实数的数字带有小数部分。然而它们并不仅仅是小数。它也能保存一些大到连 BIGINT都保存不下的整数。MySQL同时支持精确和不精确两种类型。

 

FLOAT和DOUBLE支持近似的标准浮点运算。如果你需要知道准确的浮点运算结果,你需要研究你的平台的浮点实现方式。

 

DECIMAL类型存储了准确的浮点数。在MySQL5.0以上版本,都支持准确的运算。MySQL4.1较早版本,一般浮点运算会得到比较奇怪的值,因为丢掉了精度。在这些MySQL版本中,DECIMAL只不过是存储类型而已。

 

MySQL5.0以上版本的服务器自身去运行DECIMAL运算,是因为CPU并不直接支持这种计算。浮点运算稍微快些,因为CPU本地执行了这些运算。

 

浮点和DECIMAL类型都允许你指定精度。对于DECIMAL,你可以指定小数点之前和之后的数字最大的数量。这个决定了列的消耗空间的大小。MySQL5.0以上版本把数字打包进了一个二进制字符串(每四个字节包含了九个数字)。比如DECIMAL(18,9)会在小数点两边各存储9个数字,使用的空间为9字节:4个字节存储了小数点之前的数字,1个字节存储了小数点,另外4个字节存储了小数点之后的数字。

 

一个DECIMAL数在MySQL5.0以上版本中最高上限的数字个数为65。早期的MySQL版本中限制为254,并且存储数值并没有压缩(一个字节一个数字)。然而,这些版本中,并不能使用这些大数值进行计算,因为DECIMAL就是个存储类型而已。要计算的话,只能把DECIMAL转换为DOUBLE了。

 

指定浮点数的精度有两种方法,不同的方法导致了MySQL选择不同的类型以及近似的存储数值。精度的指定并不是标准的,因此我们建议指定你希望的类型而不是精确度。

 

保存相同的数值范围的情况下,浮点类型要比DECIMAL使用更少的空间。一个FLOAT列使用了4个字节。DOUBLE消耗了8个字节以及有更好的精度和更大的值的范围。像Integer一样,你仅仅选择的是存储类型。MySQL在浮点运算中,使用DOUBLE进行运算。

 

因为需要额外的存储空间和计算的消耗。你使用DECIMAL的情况为你需要使用精确的结果。比如,存储的是财政信息。

2
0
分享到:
评论

相关推荐

    kafka-schema-registry-client-6.2.2.jar

    mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-schema-registry-client -Dversion=6.2.2 -Dfile=/root/kafka-schema-registry-client-6.2.2.jar -Dpackaging=jar 官网下载地址 packages....

    Python库 | jsonschema-4.0.0a1-py2.py3-none-any.whl

    资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:jsonschema-4.0.0a1-py2.py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    JSON Schema 生成库——json-schema-inferrer(java版).rar

    10. **最佳实践**:使用`json-schema-inferrer`时,遵循最佳实践,如保持Schema简洁、避免过度复杂化,以及合理利用Schema的继承和组合特性,可以帮助提升代码的可读性和维护性。 总的来说,`json-schema-inferrer`...

    kafka-schema-registry-client-3.2.0.jar

    kafka-schema-registry-client-3.2.0.jar包,亲测可用,在aliyun仓库内找不到,可以下载此jar包来进行手动安装

    kafka-schema-registry-client-3.3.1.jar

    kafka-schema-registry-client-3.3.1.jar包,在aliyun 仓库内无法下载,可以下载此jar包然后手动安装

    xmlschema-core-2.1.0-API文档-中文版.zip

    赠送jar包:xmlschema-core-2.1.0.jar; 赠送原API文档:xmlschema-core-2.1.0-javadoc.jar; 赠送源代码:xmlschema-core-2.1.0-sources.jar; 赠送Maven依赖信息文件:xmlschema-core-2.1.0.pom; 包含翻译后的API...

    前端开源库-json-schema-to-markdown-table

    `json-schema-to-markdown-table` 是一个非常实用的开源库,它旨在帮助开发者将JSON Schema转换成Markdown表格,使得数据结构一目了然,同时也便于文档的编写和分享。 JSON Schema是一种JSON格式的规范,用于定义...

    xmlschema-core-2.0.3的jar

    XML Schema(通常缩写为XSD)是W3C组织定义的一种XML语言,用于描述XML文档的结构和数据类型。它是XML文档验证的重要工具,确保数据遵循特定的规则和格式。在Java编程环境中,XML Schema Core库是处理XSD相关的操作...

    springfox-schema-2.7.0-API文档-中英对照版.zip

    赠送jar包:springfox-schema-2.7.0.jar; 赠送原API文档:springfox-schema-2.7.0-javadoc.jar; 赠送源代码:springfox-schema-2.7.0-sources.jar; 赠送Maven依赖信息文件:springfox-schema-2.7.0.pom; 包含...

    xmlschema-core-2.0.3.jar

    xmlschema-core-2.0.3.jar;xmlschema-core-2.0.3.jar;xmlschema-core-2.0.3.jar

    springfox-schema-3.0.0-API文档-中文版.zip

    赠送jar包:springfox-schema-3.0.0.jar; 赠送原API文档:springfox-schema-3.0.0-javadoc.jar; 赠送源代码:springfox-schema-3.0.0-sources.jar; 赠送Maven依赖信息文件:springfox-schema-3.0.0.pom; 包含...

    kafka-schema-registry-client-3.0.0.jar

    kafka-schema-registry-client.jar,kafka客户端所需的jar包,maven中已经找不到,所以将自己本地的分享出来。

    springfox-schema-2.4.0-API文档-中文版.zip

    赠送jar包:springfox-schema-2.4.0.jar; 赠送原API文档:springfox-schema-2.4.0-javadoc.jar; 赠送源代码:springfox-schema-2.4.0-sources.jar; 包含翻译后的API文档:springfox-schema-2.4.0-javadoc-API...

    PyPI 官网下载 | tableschema-elasticsearch-0.3.0.tar.gz

    在本次讨论中,我们关注的是名为`tableschema-elasticsearch-0.3.0.tar.gz`的压缩包,它源自PyPI官网,主要用于连接和操作Elasticsearch数据库,以实现高效的数据管理和检索。 Elasticsearch,作为一款强大的开源...

    JSON Schema 校验库——json-schema-validator(java版本).rar

    5. **性能优化**:虽然JSON Schema验证可能涉及复杂的递归和规则检查,但`json-schema-validator`通过缓存和优化验证过程,确保了良好的性能。 在实际使用中,首先需要将`json-schema-validator`库添加到项目依赖中...

    xmlschema-core-2.2.1.jar

    如果是maven依赖,可以在pom.xml中引入以下配置 <groupId>org.apache.ws.xmlschema <artifactId>xmlschema-core <version>2.2.1 </dependency>

    schema-registry-center-6.2.1.zip

    《深入理解Avro Schema Registry与Kafka集成》 在大数据处理领域,Avro因其紧凑的序列化格式和强大的...在实际使用中,理解并掌握Schema Registry的原理和最佳实践,对于提升整个数据处理系统的效率和稳定性至关重要。

    springfox-schema-2.9.2-API文档-中文版.zip

    赠送jar包:springfox-schema-2.9.2.jar; 赠送原API文档:springfox-schema-2.9.2-javadoc.jar; 赠送源代码:springfox-schema-2.9.2-sources.jar; 赠送Maven依赖信息文件:springfox-schema-2.9.2.pom; 包含...

    xmlschema-core-2.0.jar

    cxf jar xmlschema-core-2.0.jar

    Python库 | json_schema_generator2-0.1.4-py2.py3-none-any.whl

    JSON Schema是一种JSON格式的规范,用于定义JSON数据的结构和限制,类似于XML Schema或DTD(文档类型定义)。这个库,json_schema_generator2,版本0.1.4,提供了在Python 2和Python 3环境中创建JSON Schema的工具。...

Global site tag (gtag.js) - Google Analytics