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

news/2024/11/25 14:49:14/

 一. 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.ppmy.cn/news/6091.html

相关文章

垃圾回收机制

1.什么场景下该使用什么垃圾回收策略? (1).对内存要求苛刻的场景 想办法提高对象的回收效率,尽可能的多回收一些对象,腾出更多内存 (2).在CPU使用率较高的情况下 降低高并发时垃圾回收频率,让CPU更多地去执行业务而不是垃圾回收 …

某鱼兼职并不是那么好做,钱也不是漫天要价

文章目录一、背景二、雇主的期望2.1、jinja2代码三、题主的期望3.1、删除功能3.2、前端体现3.3、留言列表实现降序3.4、效果显示四、总结一、背景 上周某鱼推送过来的单子多到题主应接不暇,不得已拒绝了几单,但是接下来的单子呢又不那么顺利,…

InnoDB详解2

文章目录InnoDB详解21 行格式1 Compact行格式详解1 变长字段长度列表(两个字节)2 NULL值列表(1个字节)3 记录头信息 (重点)2 Dynamic行格式2 页的上层结构InnoDB详解2 1 行格式 规定每条记录是怎么存储的…

不同截止高度角BDS/GPS/Galileo单历元RTK定位性能分析

摘要 【目的】为探究北斗卫星导航系统(BeiDou Navigation Satellite System, BDS)、GPS(Global Positioning System)、Galileo单系统及组合系统在中国地区不同截止高度角下单历元双频RTK(Real-Time Kinematic)定位性能,对武汉境内一条短基线进行分析研究。【方法】采用双…

Linux tracepoint 简介

文章目录前言一、跟踪点的目的二、跟踪点的使用三、DECLARE_TRACE四、sched_switch例程五、TRACE_EVENT六、跟踪点的开销参考资料前言 跟踪点是放置在内核代码中较重要位置的硬编码检测点。例如,在系统调用、调度程序事件、文件系统操作和磁盘I/O的开始和结束处都有…

Three JS 调研

0. 结论 three.js是使用WebGL来绘制三维效果的,核心数据是3D对象和三维模型,更多的是关注如何通过webgl更精细而美的渲染数据 three.js相当于封装了webgl,但还是很底层,并不是一个类似于cesium或者mapbox这样的成熟地图框架&…

jQuery 插件开发

文章目录jQuery 插件开发插件概述常用插件文本溢出:dotdotdot.js单行文本省略多行文本省略延迟加载:lazyload.js插件编写方法类插件函数类插件jQuery 插件开发 插件概述 jQuery插件可以理解成是使用jQuery来封装的一个功能或特效。 一般来说&#xff…

Mac 截图工具 iShot Pro - 软件介绍、下载安装详细教程

Mac 截图工具 iShot Pro -软件介绍、下载安装详细教程 iShot -优秀,功能齐全的区域截图,窗口截图,多窗口截图,长屏幕截图,shell截图,时间间隔截图,快速注释,纹理,颜色匹配…