mysql
凯己几
生而不易,何来简单。
展开
-
mysql-丢失更新,脏读,幻读,不可重复读
1、丢失更新如果两个事务都要更新数据库一个字段X,x=100事务A 事务B 读取X=100 读取X=100 写入x=X+100 写入x=X+200 事务结束x=200 事务结束x=300 最后x=300 两个不同事物同时获得相同数据,然后在各自事务中同时修改了该数据,那么先提交的事务更新会被后提交事务的更新给覆盖掉,这种情况事务A的更新...原创 2019-11-11 23:32:34 · 349 阅读 · 0 评论 -
mysql-事务的隔离级别如何通过锁机制实现
事务的隔离级别通过锁机制实现解释:未提交读:事务T在读取数据的时候并未对数据进行加锁,事务T在修改数据的时候对数据增加行级共享锁,这种隔离级别会导致脏读 已提交读:事务T在读取数据时增加行级共享锁,读取一旦结束,立即释放;事务T在修改数据时增加行级排它锁,直到事务结束才释放,这种隔离级别解决了脏读 可重复读:事务T在数据读取时,必须增加行级共享锁,直到事务结束;事务T在修改数据过程中,必须...转载 2019-11-11 22:16:48 · 368 阅读 · 0 评论 -
mysql-事务与锁基础
什么是事务mysql中一个mysql语句或者是一组sql语句要么全不执行成功,要么全部执行失败,失败后数据变回原始数据模样。举例:A给B 100元钱,sql的两哥步骤的操:A-100 ,B+100;在对数据AB用户进行操作时,要么A-100 ,B+100均成功,要么两个都失败,失败后。如果A-100失败,则B+100不执行;如果B+100失败,则A-100操作回滚。即失败后AB的数据和...原创 2019-11-10 16:44:00 · 84 阅读 · 0 评论 -
mysql-物化视图-延时性物化视图和及时性物化视图的创建及其使用
物化视图是一个实体的表,物化视图是相对于视图而言的,但是两者实际上并没有什么关系就如java/javaScript一样首先mysql的视图不是一种物化视图,他相当于一个虚拟表,本身并不存储数据,当sql在操作视图时所有数据都是从其他表中查询出来的。者带来的问题是使用视图并不能将常用数据分离出来,优化查询速度,切操作视图的很多命令和普通标一样,这回导致在业务中无法通过sql区分表和视图,是代码变得...原创 2019-11-10 14:40:20 · 979 阅读 · 0 评论 -
mysql-三范式
数据库设计需要遵从范式。数据库范式有六种:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。一般说来,数据库只需满足第三范式(3NF)就行了(第四范式常见用于数据仓库的设计,第五范式用于下一代数据数据仓库设计【是一个更加完整的数仓但是也是更加的细致】)。下面用画图方式简单介绍下前三范式。1NF:字段...原创 2019-10-30 09:22:52 · 155 阅读 · 0 评论 -
mysql基础-存储过程
什么是存储过程像java中的函数一样。属于主动技能存储过程(Stored Procedure)是在数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。存储过程的优点减少了sql语句的网络(从后端到mysql集群)传输从而提升了速度。 ...原创 2019-10-16 23:56:06 · 167 阅读 · 0 评论 -
mysql 基础-触发器
触发器就像是一个被动技能,满足条件执行。为什么使用触发器简单的说,就是一张表发生了某件事(插入、删除、更新操作),然后自动触发了预先编写好的若干条SQL语句的执行;触发器优点特点:触发事件的操作和触发器里的SQL语句是一个事务操作,具有原子性,要么全部执行,要么都不执行;作用:保证数据的完整性,起到约束的作用;为什么慎用触发器触发器是隐藏到mysql后台运行的功能。...原创 2019-10-16 11:23:47 · 185 阅读 · 0 评论 -
mysql 基础-视图
什么是视图视图,虚拟表,从一个表或多个表中导出来的表,作用和真实表一样,包含一系列带有行和列的数据 视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图可以使用户操作方便,并保障数据库系统安全为什么需要视图(优点)部分公司没有测试环境的情况下(很少的公司),会使用视图将数据取部分字段给开发人员以确保敏感数据的不被泄露(电话号码和...原创 2019-10-13 11:37:54 · 173 阅读 · 0 评论