1,Mysql常见命令
2,Mysql常见数据类型
3,char和varchar的使用细节
1.如果数据是定长,推荐使用char,比如MD5的密码,手机号,身份证号等。
2.如果一个字段的长度是不确定的,推荐使用varchar。
查询速度:char>varchar
4,select查询语句
1).常用运算符
2).字符串相关函数
3).日期相关函数
4).SQL查询语法
5.MySQL 常见完整性约束
-
PRIMARY KEY 主码约束(主键)
-
UNIQUE 唯一性约束
-
NOT NULL 非空值约束
-
AUTO_INCREMENT 用于整数列默认自增1
-
UNSIGNED 无符号整数
-
DEFAULT default_value 默认值约束
-
FOREIGN KEY 外键约束
-
DEFAULT cur_timestamp 创建新记录时默认保存当前时间(仅适用timestamp数据列)
-
ON UPDATE cur_timestamp 修改记录时默认保存当前时间(仅适用timestamp数据列)
-
CHARACTER SET name 指定字符集(仅适用字符串)
6.索引
B+Tree是在B-Tree基础上的一种优化,使其更适合实现外存储索引结构,InnoDB存储引擎就是用B+Tree实现其索引结构。
7.MyISAM和InnoDB对比
1.InnoDB存储引擎的特点
-
支持行锁和外键约束,因此可以支持写并发
-
对于AUTO_INCREMENT类型的字段,必须包含只有该字段的索引
-
DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除
-
主键索引采用聚集索引
-
支持事务(Transaction):
-
需要执行大量的增、删、改操作(insert、delete、update语句),出于事务安全方面的考虑,InnoDB是更好的选择
2.MyISAM存储引擎的特点
-
不支持事务,但是整个操作是原子性的(事务具备四种特性:原子性、一致性、隔离性、持久性)
-
不支持外键,支持表锁,每次锁住的是整张表,MyISAM的表锁有读锁和写锁(两个锁都是表级别)
-
采用非聚集索引,索引文件的数据域存储指向数据文件的指针。
-
支持全文索引和空间索引
-
对于AUTO_INCREMENT类型的字段,可以和其他字段一起建立联合索引
-
如果需要执行大量的select语句,出于性能方面的考虑,MyISAM存储引擎是更好的选择。
8.事务与锁
mysql数据库事务的几个重要操作:
事务隔离级别:
InnoDB默认的隔离级别是RR 。
mvcc
MVCC全称Multi-Version Concurrency Control,即多版本的并发控制协议,MVCC 的目的就是多版本并发控制,在数据库中的实现,就是为了==解决读写冲突==。
MVCC实现原理:
MVCC实现原理主要是依赖记录中的 ==3个隐式字段==,==undo日志== ,==Read View== 来实现.