MySQL基础

本文介绍了MySQL中的各种数据类型,包括整数类型、实数类型、字符串类型等,并详细解释了每种类型的特点和适用场景。此外,还探讨了MySQL的存储引擎,如InnoDB和MyISAM的区别及应用场景,以及锁机制对数据库性能的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据类型

整数类型

thinyint(4)  1   smallint(6)  2   mediumint(9)  3  int(11)   4  bigint(20) 8字节

属性 ussigned  aerofill

长度 可以为整数类型指定宽度,例如:int(11) 对大多数应用是没有意义的,它不会限制值的合法范围,只会影响显示字符的个数

实数类型

float 4

double 8

decimal(M,D)   M+2 字节 M参数称为精度,是数据的总长度,小数点不占位置。D参数成为标度,是指小数点后面的长度是D。

定点数以字符串形式存储,其精度比浮点数更高;可用于存储精确小数。

字符串类型

varchar(M) 0-65536  可变长,会多出 1 到 2 个字节来确定存储的实际长度。

char(M) 0-255      括号里面写的是字符长度,char是定长的,会根据需要采用空格填充,适合存储比较短的字符串,或者长度接近的,如果手机号码,md5后32位的密码 身份证号码,超出长度会被截断。

对于经常变更的数据,char比varchar更好,char不容易产生碎片

对于非常短的列,char比varchar在存储空间上更有效率

text   尽量少使用,查询会使用临时表,导致严重的性能开销

enum 枚举      实际就是使用整型来存储,不要使用数字做为枚举的常量,易混乱

日期和时间类型

尽量使用timestamp,比datetime空间效率高,用户整数保存时间戳的格式通常不方便处理,需要存储微秒,可使用bigint存储。

基础操作

连接   mysql -u -p -h -P

其它  \G垂直显示、  \c 取消、\q 退出、\s 服务器状态、\h帮助信息 

存储引擎

InnoDB

默认事务型引擎,最重要最广泛的存储引擎,性能非常优秀,数据存储在共享表空间,可以通过配置分开,对主键查询的性能高于其它类型的存储引擎,内部做了很多优化,从磁盘读取数据时自动在内存构建hash索引,插入数据时自动构建插入缓冲区。

通过一些机制和工具支持真正的热备份,支持崩溃后的安全恢复,支持行级锁,支持外键

MyISAM 

5.1版本前为默认引擎,拥有全文索引,压缩,空间函数,不支持事务和行级锁,不支持崩溃后的安全恢复,表存储在两个文件,MYD和MYI。设计简单,某些场景下性能很好

其它

Archive blackhole csv memory

锁机制

表锁是日常开发中常见的问题,当多个数据查询同一时刻进行数据修改时,就会产生并发控制的问题。

共享锁(读锁)、排他锁 (写锁

事务处理、存储过程、触发器

锁粒度

表锁 系统性能开销最不,会锁定整片表,myisam使用表锁

行锁 最大程度支持并发处理,但是也带来了最大的锁开锁,innodb实现行级锁


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值