DAY13 SQL事务 、用户权限管理

一、事务:

转账例子:原子性(要么都成功,要么都失败)、一致性(事务前后的一致性)、持久性(没提交,就恢复到原样。一旦提交就不可逆)、隔离性(脏读、重复读、虚读)

1、关闭自动提交事务 set autocommit =0 (默认1是开启)

2、事务开始 start transaction

结果成功:提交commit

结果失败:回滚rollback

3、事务结束 把自动事务提交再打开

set autocommit =1

以上的事务,在java中是一个方法,步骤按顺序一起执行

二、索引:

主键索引

唯一索引

常规索引

全文索引

创建索引,再小数量的时候,区别不大。在大数据的时候,sql对相应的索引列创建一个对应的列,实际查询时sql直接找,而不是遍历

注意:不能加在经常变化的数据上,新插入之后还得再创建索引

三、用户权限管理

新建用户,给用户设置权限,是对用户账号的管理(包括增删改查表),不是账号所针对内容权限的管理

四、三大范式:

1、原子性:列内容不可再分

2、每张表只描述一件事情

3、每张表的每一列数据都和主键直接相关,而不能间接相关

规范性和性能的问题(和范式是矛盾)阿里要求:关联查询的表不能超过三张表。所以

1、考虑商业化需求和性能

2、性能为主,规范性为辅

3、故意增加一些冗余字段

4、故意增加一些计算列

五、PreparedStatement防止sql注入

六、DBCP、C3P0连接池技术

你可能感兴趣的:(DAY13 SQL事务 、用户权限管理)