MySQL的数据类型和存储引擎介绍

news2025/1/13 15:35:02

一. MySQL数据类型

1. 整数类型

注:MySQL可以为整数类型指定宽度,比如 int(3)、int(5),这个限制不是限制value的合法范围,所以对绝大数应用没有任何意义,对于存储而言,int(3) 和 int(5) 是相同的,只是对一些MySQL的交互工具显示字符的个数有用,如mysql客户端。

2. 浮点类型

注:float和double类型会存在不够精确的问题,高精度要求建议使用decimal类型,可能会出现下图现象:

3. 字符类型

补充:char和varchar的区别

4. 日期类型

5. 二进制类型

6. 大数据类型

7. 枚举类型和集合类型

(1). 枚举

 Enum枚举类型是字符串类型,mysql在存储此类型数据时,直接转化成数字存储而不是字符串,可以节省空间,并且在表的.frm文件中存储“数字----字符串 ”之间的对应关系。

 Enum枚举类型最多可以有65535个值,当插入数字到枚举类型的字段时,数字会被当做枚举值的第n个值插入。

(2). 集合

 Set集合类型是字符串类型,可以含有0个或多个值,其中每个值都需要在创建字段的适合指定到集合中。

补充:MySQL和C#对应关系

更多C++后台开发技术点知识内容包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,音视频开发,Linux内核,TCP/IP,协程,DPDK多个高级知识点。

C/C++Linux服务器开发高级架构师/C++后台开发架构师​免费学习地址

【文章福利】另外还整理一些C++后台开发架构师 相关学习资料,面试题,教学视频,以及学习路线图,免费分享有需要的可以点击领取

二. 存储引擎

1. 含义

  存储引擎是 MySQL 中具体与文件打交道的子系统,它是根据 MySQL AB 公司提供的文件访问层抽象接口定制的一种文件访问机制,这种机制就叫作存储引擎,下面是一些常用的存储引擎,有远古时期的 MyISAM、支持事务的 InnoDB、内存类型的 Memory、归档类型的 Archive、列式存储的 Infobright,以及一些新兴的存储引擎,以 RocksDB 为底层基础的 MyRocks 和 RocksDB,和以分形树索引组织存储的 TokuDB。

注:MySQL 5.6 版本之前,默认的存储引擎都是 MyISAM,但 5.7 版本及以后默认的存储引擎就是 InnoDB 了。

2. MyISAM和InnoDB对比

(1). 功能对比

 InnoDB 支持 ACID 的事务 4 个特性,而 MyISAM 不支持;

 InnoDB 支持 4 种事务隔离级别,默认是可重复读 Repeatable Read 的,MyISAM 不支持;

 InnoDB 支持 crash 安全恢复,MyISAM 不支持;

 InnoDB 支持外键,MyISAM 不支持;

 InnoDB 支持行级别的锁粒度,MyISAM 不支持,只支持表级别的锁粒度;

 InnoDB 支持 MVCC,MyISAM 不支持;

InnoDB 表最大还可以支持 64TB,支持聚簇索引、支持压缩数据存储,支持数据加密,支持查询/索引/数据高速缓存,支持自适应hash索引、空间索引,支持热备份和恢复等,如下图所示。

(2). 性能对比

 A. 读写混合模式下,随着 CPU 核数的增加,InnoDB 的读写能力呈线性增长。

 B. 在测试用例里,最高可达近 9000 的 TPS,但 MyISAM 因为读写不能并发,它的处理能力跟核数没关系,呈一条水平线,TPS 低于 500。

 C. 只读模式下,随着 CPU 核数的增加,InnoDB 的读写能力呈线性增长,最高可达近 14000 的 TPS,但 MyISAM 的处理能力不到 3000 TPS。

3. InnoDB存储引擎核心点

原文链接:第五节:MySQL的数据类型和存储引擎介绍 - Yaopengfei - 博客园

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/110234.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习中的数学原理——随机梯度下降法

这个专栏主要是用来分享一下我在机器学习中的学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎私信或者评论区留言!这一篇就更新一下《白话机器学习中的数学——随机梯度下降法》! 一、什么是随机梯度下降法 随机…

NVM安装

注意事项: 1、不能安装任何node版本(如存在请删除后安装nvm); 安装步骤: 1、下载nvm ![在这里插入图片描述](https://img-blog.csdnimg.cn/c9dcc27383aa41888347080438c0914e.png 解压后点击exe文件进行安装: &#x…

负载均衡简介

一、什么是负载均衡? 互联网早期,业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台机器的性能问题以及单点问题凸显…

SMMP:一种基于稳定成员资格的多峰聚类算法(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

伦茨LENZE GDC操作指南

1、GDC软件综述 GDC程序可以“在线模式”和“离线模式”使用: 离线模式 可以在没有与目标系统(控制器)相连接条件下使用。该功能允许离线设定参数、编程等工作。 在线模式 通过PC的串口、并口或系统总线实现GDC与目标系统(控制器…

376. 机器任务——最小点覆盖+匈牙利算法

有两台机器 A,B 以及 K 个任务。 机器 A 有 N 种不同的模式(模式 0∼N−1),机器 B 有 M 种不同的模式(模式 0∼M−1)。 两台机器最开始都处于模式 0。 每个任务既可以在 A 上执行,也可以在 B…

艾美捷游离巯基检测试剂盒基本参数和特点说明

游离硫醇(即蛋白质上的游离半胱氨酸、谷胱甘肽和半胱氨酸残基)的检测和测量是研究许多生物系统中的生物过程和事件的基本任务之一。 艾美捷游离巯基检测试剂盒提供了一种简单、可重复和灵敏的工具,用于测定样品(即血浆、血清、组织…

3D格式转换工具HOOPS Exchange助力3D 打印软件实现质的飞跃

HOOPS SDK是用于3D工业软件开发的工具包,其中包括4款工具,分别是用于读取和写入30多种CAD文件格式的HOOPS Exchange、专注于Web端工程图形渲染的HOOPS Communicator、用于移动端和PC端工程图形渲染的HOOPS Visualize、支持将3D数据以原生3D PDF、HTML和标…

解决电脑C盘空间不足,发现微信和qq文件占用了大量内存

项目场景: 电脑C盘空间不足,需要隔一段时间清理垃圾,分析占用空间的文件,将C盘文件迁移到E盘。 问题描述 C盘提示空间不足 原因分析: 通过扫描磁盘发现微信和qq文件占用了几十G的内存,由于微信和qq的一…

C++成员函数当作参数调用的两种方式

平时编程时,多用来将数据进行传参,在考虑回调场景下我们会将函数单做参数传给被调用函数,让被调用函数在时机成熟时进行调用。在某些场景下,需要将类的成员函数当作参数进行回调,此时定义成员函数形参的方式通常有两种…

我的python学习经历及资源整理

对于小白来说,有个人引导会比自学要高效的多,尤其容易坚持不下去的小伙伴。可以试试下面这个入门课程,不用本地安装Python环境,能直接在网页上敲代码,还有大牛老师带着入门,能少走很多弯路!只要…

直播弹幕系统(五)- 整合Stomp替换原生WebSocket方案探究

直播弹幕系统(五)- 整合Stomp替换原生WebSocket方案探究前言一. STOMP 协议简单介绍1.1 客户端编码基础1.2 服务端编码基础1.2.1 SimpMessagingTemplate1.2.2 SendTo 和 MessageMapping二. SpringBoot整合STOMP并实现聊天室2.1 基础配置和依赖2.2 WebSoc…

华为EC6108V9C免拆卡刷固件包

华为EC6108V9C免拆卡刷固件包 固件特点: 1、修改dns,三网通用; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、无开机广告,无系统更新,不在被强制升级; 4、大量精简内置的没用的软件&…

Redis高级篇之最佳实践

Redis高级篇之最佳实践 本章内容 Redis 键值设计批处理优化服务端优化集群最佳实践 笔记整理自 b站_黑马程序员Redis入门到实战教程 1. Redis键值设计 优雅的key结构 Redis 的 Key 虽然可以自定义,但最好遵循下面的几个最佳实践约定: 遵循基本格式&a…

Docker容器中安装Jenkins

众所周知,jenkins是现在比较流行的一种工具,今天就记录一下在工作中如何使用了jenkins, 由于我使用的使用Linux(Debain 11)开发环境使用了jdk1.8,会跟最新版的jenkins(官方介绍最新版要jdk11支持)有不良的化学反应,所以把jenkins放到了容器中…

Hive+Spark离线数仓工业项目实战--项目介绍及环境构建(2)

Docker的介绍 了解Docker的基本功能和设计 - 为什么要用Docker? - 什么是Docker? 路径 - step1:生产环境的问题 - step2:容器的概念 - step3:Docker的设计 实施 生产环境的问题 - 运维层面:一…

Windows下的通用进程守护程序(持续更新中),高仿supervisor。

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:无尽的折腾后,终于又回到…

【Three.js入门】标准网格材质、置换贴图、粗糙度贴图、金属贴图、法线贴图

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端 📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀未…

【实时数仓】DWS层的定位、DWS层之访客主题计算(PV、UV、跳出次数、计入页面数、连续访问时长)

文章目录一 DWS层与DWM层的设计1 设计思路2 需求梳理3 DWS层定位二 DWS层-访客主题计算1 需求分析与思路2 功能实现(1)封装VisitorStatsApp,读取Kafka各个流数据a 代码b 测试(2)合并数据流a 封装主题宽表实体类Visitor…

CMakeList

目录 .1 简介 .2 常用命令 2.1 指定 cmake 的最小版本 2.2 设置项目名称 2.3 设置编译类型 2.4 指定编译包含的源文件 2.4.1 明确指定包含哪些源文件 2.4.2 搜索所有的 cpp 文件 2.4.3自定义搜索规则 2.5 查找指定的库文件 2.6. 设置包含的目录 2.7. 设置链接库搜索…