ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql 从入门到精通笔记-第五章 存储引擎和数据类型

2022-06-09 15:33:12  阅读:192  来源: 互联网

标签:存储 MM 127 数据类型 引擎 第五章 mysql 类型 255


5.1 MySQL存储引擎 存储引擎是如何存储数据、如何为存储的数据建立索引、更新索引、查询数据的技术的实现方法。 关系型数据库中,数据是按照表进行存储的,所以存储引擎也称为表类型(存储+操作此表的类型)。
  • Oracel + sql server只有一种存储类型。
  • MySQL 具有多个存储引擎,用户可以为不同需求选择、编写存储引擎。
  1、show engines\g; 来查询当前数据库使用的存储引擎。   可以看到当前默认的是InnoDB   2、查询默认的存储引擎     5.1.1 InnoDb 存储引擎 1、支持自动增长列 AUTO_INCREMENT ,不能为空,并且为主键; 2、支持外键(foreign key) ;   优点:
  • 更新密集,适合处理多重并发更新请求;
  • 事务;
  • 自动灾难恢复,能从自动灾难中恢复;
  5.1.2 MyISAM 存储引擎
  • mysql 5.5之前版本默认的存储引擎;
  • 优点:。。。。
  • 缺陷:占用空间小、处理速度快、不支持十五完整性和并发性;
  5.1.3 Memory存储引擎
  • 设计是为了速度;
  • 用于存储临时数据;
  • 但是如果mysqld崩溃,所有数据丢失;
查看数据库存储位置:   5.2 MySql 数据类型 5.2.1 数字类型 主要为整型 + 浮点型 TINYINT : -127~127  或者 0~255  BIT         :-127~127 或者 0~255 BOOL     : SMALLINT : -32768-32768 或者 0-65535 MEDIUMINT :-8388608 -~8388607 或者 0~16777215 INT :-2147683648 ~2147683647   或者 -~4294967295 BIGINT:8字节  最大2^64-1 FLOAT:8或者4字节 DOUBLE:8字节 DECEMAL:长度自定义   5.2.2 字符串类型 文本字符串 创建表声明的长度:
  • char 1   255字符
  • varchar  255字符
CHAR类型是定长的,MySQL总是根据定义的字符串长度分配足够的空间。当保存CHAR值时,在它们的右边填充空格以达到指定的长度,当检索到CHAR值时,尾部的空格被删除掉。 VARCHAR类型用于存储可变长字符串,存储时,如果字符没有达到定义的位数,也不会在后面补空格。但是,由于行是变长的,在UPDATE时可能使行变得比原来更长,这就导致需要做额外的工作。如果一个行占用的空间增长,并且在页内没有更多的空间可以存储,在这种情况下InnoDB需要分裂页来使行可以放进页内,这样会增加碎片。   可变类型:
  • text : 存储长文本 tinytext 8位 ,text16位 longtext 32位
  • blob: 存储二进制数据 图片、声音、图像等等 tinyblob 、mediumblob、longblob
  特殊类型:
  • set    :容纳一组值或者null,最大64
  • enum :枚举,只能容纳指定的值或者null ,最大65535
  适用场景: 1、速度方面考虑,使用char 2、节省空间使用vchar 3、列中的内容限制在一种选择,使用enum; 4、搜索内容不区分大小,使用text; 5、内容却分大小写使用blob   5.2.3 日期 和时间类型
  • datetime:YYYY-MM-DD HH:MM:SS
  • date : 日期格式 YYYY-MM-DD
  • timstamp :YYYY-MM-DD HH:MM:SS 需要设定时区,默认为UTC时区,可以使用SET TIMEZONE='+03:00';
  • time : HH:MM:SS
  • year: 范围1901-2155
每个类型都有取值范围,如果赋予一个非法值,将会使用0代替。

标签:存储,MM,127,数据类型,引擎,第五章,mysql,类型,255
来源: https://www.cnblogs.com/spring2022/p/16359459.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有