事务
事务具有ACID特性:
原子性(A,atomicity)
一致性(C,consistency)
隔离性(I,isolation)
持久性(D,durabulity)
原子性:事务内所有操作要么都执行,要么都不执行,它是一个不可分割的工作单位 例如: A给B转账,不会因为各种原因A账号已经发生扣款而B账户没有收到加款。 一致性:事务开始和结束前后,数据库的完整性没有被破坏 案例: 对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNT表中aaa和bbb的存款总额为2000元。 隔离性:事务之间不相互影响,多个事务并发访问时,事务之间是隔离的 事务查看数据更新时,数据所处状态要么是另一事务修改之前或者修改之后的状态,不会查看到中间状态的数据。事务1在修改表的时候提交之前事务2不能修改 持久性:事务完成一手,该事务所对数据库所做的更改会持久的存在数据库中 begin; 开启事务 update delete insert 更改删除添加数据 commit;提交事务 rollback; 回滚事务,放弃修改索引
当数据库中数据量很大时,查找数据会变得很慢, 优化方案:索引 索引缺点:不便于增删改 时间长占用内存大 show index from 表名;#查看表的索引 set profiling=1; #开启时间 索引名字 表名字(字段) create index title_index on students(id); #创建索引 desc students;#查看索引 show profiles; #查看时间 drop index 索引名称 on 表名; #删除索引 建表时创建索引 create table create_index( id int primary key, name varchar(10) unique, age int, key (age) );外键
- 如果一个实体的某个字段指向另一个实体的主键,就称为外键。被指向的实体,称之为主实体(主表),也叫父实体(父表)。负责指向的实体,称之为从实体(从表),也叫子实体(子表)
- 对关系字段进行约束,当为从表中的关系字段填写值时,会到关联的主表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并报错
-
添加外键
mysql(视图 事务 索引 外键)
标签:影响 cas 更改 状态 _id student uniq set sql