Mysql(二)

一、表的关系设计

关系表的设计.png

二、表一般都拥有的字段

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

三、设置索引查询

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

设置搜索索引.jpg

四、数据库事务

事务隔离级别.png

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

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

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

示例:商品购买:https://www.jianshu.com/p/f17d995a1b38

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容