ACID务必了解清楚在看下面https://blog.csdn.net/dengjili/article/details/82468576(引用)
原子性:要么都成功,要么都失败。
一致性:事务前后的数据完整性要保证一致。意思是前面两个人200和三百总和是五百,如果相互转移了数据总和因该也是五百。
持久性:事务一但提交就不客逆了,被永久的保存在数据库中了。
隔离性:事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
隔离的问题
脏读: 指一个事务读取了另外一个事务未提交的数据。
不可重复读: 在一个事务内读取表中的某一行数据,多次读取结果不同。(这个不一定是错误,只是某些场合不对)
虚读(幻读): 是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。 (一般是行影响,多了一行)
https://www.bilibili.com/video/BV1NJ411J79W?p=28
事务练习语句:流程如下
-- 手动处理事务(先关闭事务) SET autocommit=0 -- 事务关闭语句,关闭事务的自动提交功能 -- 事务开启 START TRANSACTION -- 标记一个事务的开始,执行这语句过后sql都在同一个事务中了 INSERT xx -- 插入事务 INSERT xx -- 插入事务 COMMIT -- 提交语句,当事务成功执行 ROLLBACK -- 回滚语句,意思是回到原来的样子,当事务失败执行 -- 事务结束 SET autocommit=1 -- 事务开启语句,这个是默认的,让事务自动提交 -- 事务保存 SAVEPOINT 保存位置名 -- 设置一个事务的保存位置 ROLLBACK TO SAVEPOINT 保存位置名 -- 回滚到保存点 RELEASE SAVEPOINT 保存位置名 -- 撤销保存点 一个事务可以拥有多个保存点https://www.bilibili.com/video/BV1NJ411J79W?p=29
mySQL官方对索引的定义为:索引是帮助mySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。
主键索引(PRIMARY KEY)唯一索引(UNIQUE KEY)常规索引 (KEY或者INDEX)全文索引 (FULLTEXT)索引的使用 1、在创建表的时候给字段添加索引 2、创建完毕后,添加索引
SHOW INDEX FROM 表名 -- 查询该表的索引信息 ALTER TABLE 库名.表名 ADD FULLTEXT INDEX `字段名`(`字段名字`); -- 修改索引将字段改为全文索引(FULLTEXT) EXPLAIN SELECT*FROM 表名; -- 非全文索引 EXPLAIN SELECT*FROM 表名 WHERE MATCH(字段) AGAINST('关键字'); -- 查询关键字的信息https://www.bilibili.com/video/BV1NJ411J79W?p=30
例子位置https://www.bilibili.com/video/BV1NJ411J79W?p=31
1、索引不是越多越好 2、不要给经常变动的数据加索引 3、少量数据不需要添加索引,因为用处不大 4、索引一般添加在常用的字段上来查询 扩充知识点(很重要)http://blog.codinglabs.org/articles/theory-of-mysql-index.html * 学习地址https://www.bilibili.com/video/BV1NJ411J79W?p=32
https://www.bilibili.com/video/BV1NJ411J79W?p=33
备份的直接操作可以选中后右键备份。 命令备份是在Win中备份备份方法
https://www.bilibili.com/video/BV1NJ411J79W?p=34