Mysql(二)

一、表的关系设计

关系表的设计.png

二、表一般都拥有的字段

id
create_time
update_time
但是,中间表就不要以上这三个字段了

三、设置索引查询

一般MySQL语句中都会设置索引查询,可以提高查询效率

设置搜索索引.jpg

四、数据库事务

事务隔离级别.png

事务的四大特性
事务的原子性:sql语句要么成功,要么失败
事务的一致性
事务的持久性:事务一旦提交成功,就会持久性地保存在数据库中
事务的隔离性:事务与事务是相互独立的,当A事务正在执行还未提交事务;B事务处于等待状态(相当于单线程)

Mysql数据库是由java语言写成的,所以数据库中也支持多线程的
由于数据库的事务隔离性,一旦在java程序中开始事务(默认的隔离级别是第三级:对增删改隔离),在操作增删改时,需要事务A提交后(释放锁),B事务才可以对数据库进行增删改
但是,对于查操作,数据库第三级别没有进行事务隔离,那么事务A和事务B会同时获取到同一个数据;因此,在操作数据库的增删改操作时,我们需要考虑并发问题

若客户端并发操作时,考虑到安全问题,我们需要先操作增删改,再去查询;若不符合,则需要回滚事务(通过开始事务后,方法中若有异常,会进行事务回滚),那么我们只要在不符合条件的情况下抛出异常,由全局异常处理器进行处理,且事务会自动回滚(把操作的sql语句还原)

示例:商品购买:https://www.cnblogs.com/nadou/p/14004438.html

posted @ 2020-11-19 11:21  娜豆  阅读(113)  评论(0编辑  收藏  举报