MYSQL进阶02

数据类型

char与varchar

char和varchar类型类似,都用来存储字符串,但是他们保存和检索的方式不同。char属于固定长度的字符类型,而varchar属于可变长度的字符类型。

char是一种固定长度的字符串类型。当定义一个char类型的列时,需要指定该列所能存储的字符数,例如char(10)代表该列可以存储10个字符。如果存储的字符数小于指定的长度,则会在后面自动补齐空格。由于char类型是固定长度的,所以它在存储时会占用完整的指定长度的存储空间。如果存储的数据长度小于指定长度,那么剩余的空间将浪费。

varchar是一种可变长度的字符串类型。当定义一个varchar类型的列时,也需要指定该列所能存储的字符数,例如varchar(10)代表该列可以存储最多10个字符。与char不同,当存储的数据长度小于指定长度时,它不会自动补齐空格,而是只占用实际存储数据所需的存储空间。因此,varchar类型可以更加节省存储空间,但在查询时可能会比char类型稍微慢一些。
使用对比图
在这里插入图片描述

text与blob

一般在保存少量字符串的时候,我们会选择char或者varchar;而在保存数据量较大的文本时,通常会选择text和blob。二者之间的主要差别就是blob可以用来保存二进制数据,比如照片;而text只能保存字符数据。text和blob中有分为text,mediumtext,longtext和blog,mediunblob,longblob,三种不同的类型,他们之间的主要区别就是存储文本长度和储存字节不同。
注意:

  • blob和text值会引起一些性能问题,特别是在执行了大量的删除操作的时候。
    删除操作会在数据表中留下很大的空洞,以后填入这些空洞的数据性能上会有所降低,将以定期使用optimize table功能对这些表进行碎片整理。

在这里插入图片描述

  • 可以使用组合索引来提高大文本字段的查询性能。
  • 在不必要的时候尽量避免检索大型的blob或者text值。
  • 把blob和text返利到单独的表中。

浮点数与定点数

浮点数一般用于表示含有小数部分的数值。当一个字段被定义为浮点类型后,如果插入的精度超过该列定义的实际精度,则插入的值会被四舍五入到实际定义的精度,然后插入,四舍五入的过程不会报错。在MYSQL中使用float,double来表示浮点数。
定点数不同于浮点数,定点数是以字符串的形式存放的,所以定点数可以更精确的保存数据。如果实际插入的数值精度大于实际定义的精度,则MYSQL会进行警告,但是数据按照实际的精度四舍五入后插入;但是如果数据模式在传统模式下就会直接报错。

日期类型的选择

MYSQL提供的日期类型包括date,time,datetime,timestamp,以下是他们的选择原则:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 进阶实战》是一本探讨MySQL数据库高级应用和实战技巧的书籍。MySQL是一种广泛使用的开源关系型数据库管理系统,在Web开发和数据分析等领域有着重要的应用。 《MySQL 进阶实战》将帮助读者理解MySQL的高级功能和最佳实践,进一步优化数据库的性能和稳定性。本书主要内容包括: 1. 高级查询优化:介绍如何使用索引、列存储和分区技术来提高查询性能,避免慢查询和死锁等问题。 2. 数据库设计与架构:详细讲解如何设计合理的数据库模型,包括表关系、数据类型字段命名规范,以及应对高并发和大数据量的应用场景。 3. 高可用与备份恢复:介绍如何设置主从复制、集群和故障切换,确保数据库的高可用性和数据安全。 4. 性能调优与监控:介绍如何使用工具和技术调优MySQL数据库的性能,包括查询优化、缓存设置和资源管理等方面。 5. 安全与权限管理:详细讲解如何设置数据库的用户权限、访问控制和加密保护,防止非法访问和数据泄露。 6. MySQL新特性与实践:介绍新版本MySQL的特性和改进,以及如何应用到实际项目中。 《MySQL 进阶实战》不仅适合已经具有一定MySQL基础知识的读者,也可以作为MySQL数据库开发和运维人员的参考手册。通过读此书,读者将能够更深入地了解和应用MySQL数据库,在实际项目中提高开发和管理效率,提升数据库的性能和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值