数据库
槐月十九
你若盛开,清风自来
展开
-
mysql mvcc
1、概念MVCC:Multi-Version Concurrency Control,多版本并发控制。为了提高数据库的并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读。mysql中分为当前读和快照读:(1)当前读:读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁(2)快照读:不加锁的查询操作就是快照...原创 2019-10-20 11:54:46 · 596 阅读 · 0 评论 -
简单说下mysql本地事务
1、几种事务问题(1)脏读:事务A读取事务B修改的数据,然后事务B进行了事务回滚,导致事务A读取到。(2)不可重复读:事务A多次读取一个数据,在事务A读取的期间,事务B对这个数据做了修改,并且提交,导致事务A多次读取的数据前后不一致。(3)幻读:事务A对表中符合条件的多条数据(或者全表)做数据修改,这时事务B插入一条新数据或者删除了其中一条数据,导致最后修改完与预期的结果不一致。2...原创 2019-10-19 14:14:47 · 462 阅读 · 0 评论 -
oracle与mysql分页
1、mysql分页采用limit分页select * from test limit start,size;查询test表中从第start行开始,查询size数量行的数据,注意表的下标是从0开始的,即如果要查表最开始的前10行,分页语句应该这么写:select * from test limit 0,10;2、oracle中分页采用rownum分页select * from (...原创 2018-03-22 11:11:46 · 291 阅读 · 0 评论 -
mysql中EXISTS与IN用法比较
1、使用方式:(1)EXISTS用法select a.batchName,a.projectId from ucsc_project_batch a where EXISTS (select b.id from ucsc_project b where a.projectId = b.id)上面这条SQL的意思就是:以ucsc_project_batch为主表查询batchName...原创 2018-08-28 15:59:42 · 51326 阅读 · 10 评论 -
mysql中对于模糊查询like的一些总结
1、常见用法:(1)搭配%使用%代表一个或多个字符的通配符,譬如查询字段name中以大开头的数据:(2)搭配_使用_代表仅仅一个字符的通配符,把上面那条查询语句中的%改为_,会发现只能查询出下面一条数据:2、使用like模糊查询会导致索引失效,在数据量大的时候会有性能问题(1)尽量少以%或者_开头进行模糊查询通过explain执行计划,我们发现,使用like模糊...原创 2018-08-21 20:57:33 · 69710 阅读 · 3 评论 -
对于mysql中的group by分组后获取组内创建时间最大的那行数据
1、问题场景:group分组之后,一个组中会有好几条数据,但是一般默认返回id最小的那一条,现在想返回创建时间最大的那一条数据。如图所示,根据上面的QUALITY_ID来查询数据,会有两条数据产生,这个时候直接分组group,产生的结果是:2、解决方法:(1)先根据创建时间倒叙,根据倒叙完的视图进行分组group或者把查询的条件从内查询中放到外查询中也是可以的:...原创 2018-10-11 11:49:01 · 29016 阅读 · 9 评论