MySQL
备份与恢复
数据库备份:
图形化界面用久了就经常容易忘了命令怎么写
dos窗口下输入
mysqldump -u root -p -B databaseName1 [databaseName2 databaseNamen] > d:\\bak.sql
表备份
mysqldump -u root -p databaseName tableName1 [tableName2 tableNamen] > d:\\bak.sql
恢复
mysql中输入
source d:\\bak.sql;
常用数据类型
varchar
范围0-65535字节 最大65532字节(1~3个字节用于记录大小)
-
如果表的编码是 utf8 varchar(size) size = (65535 - 3) / 3 = 21844
-
如果表的编码是 gbk varchar(size) size = (65535 - 3) / 2 = 32766
即创建表时可以指定的最大字符数为上述两个
char(4)和varchar(4)表示的是字符,而不是字节,字符无论数字英文还是汉字都是四个,具体占用字节空间取决于编码。
timestamp
可以在创建表时通过语句 如果在创建和更新时该字段不指定值则使用当前时间戳。
NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
CRUD
count(*)与count(列)区别
- count(*):返回满足条件的记录的行数
- count(列) 统计满足条件的,某列有多少个,但是会排除null
事务
查看当前会话的隔离级别
SELECT @@tx_isolation;
查看系统当前的隔离级别
SELECT @@global.tx_isolation;
设置当前会话的隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL read uncommitted -- 后面跟四种隔离级别即可 例如 READ UNCOMMITTED
设置系统当前的隔离级别
SET GLOBAL TRANSACTION ISOLATION LEVEL read uncommitted -- 后面跟四种隔离级别即可 例如 READ UNCOMMITTED
全局修改,在my.ini配置文件的[mysqld]下添加或修改
# 等号后面跟四种隔离级别即可 例如 READ UNCOMMITTED
transaction-isolation = read uncommitted
事务的ACID特性
- 原子性(Atomicity)
指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
- 一致性(Consistency)
事务必须使数据库从一个一致性状态变换到另一个一致性状态。
- 隔离性(Isolation)
事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
- 持久性(Durability)
指一个事务一旦被提交,它对数据库数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。
存储引擎
修改存储引擎
ALTER TABLE `tablename` ENGINE = innodb -- 例如需改为innodb