随笔分类 -  数据库

摘要:想要根据用户分组,以该用户的下单时间为降序,提取所有用户的第二个订单信息。这属于分组排序,在Oracle有内置函数可以实现,而在mysql就有点麻烦:CREATE TABLE user_orders (orders_id INT UNSIGNED NOT N... 阅读全文
posted @ 2018-10-12 19:46 john8169 阅读(4837) 评论(1) 推荐(1)
摘要:为了验证select 1 与 select 1 from tableName 与 select * from tableName的执行效率,需要测试一下各自执行的时间。于是总结一下,查看mysql语句运行时间的方法。1. show profiles。mysq... 阅读全文
posted @ 2018-07-08 22:43 john8169 阅读(338) 评论(0) 推荐(0)
摘要:1. 数据库事务处理中出现的数据不一致的情况在多个事务并发做数据库操作的时候,如果没有有效的避免机制,就会出现种种问题。大体上有四种问题,归结如下:1.1 丢失更新如果两个事务都要更新数据库一个字段X,x=100事务A事务B读取X=100读取X=100写入x... 阅读全文
posted @ 2018-07-02 23:55 john8169 阅读(477) 评论(0) 推荐(0)
摘要:0. 前言对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。本文简单分析了MySQL中InnoDB引擎的加锁机制。1. 一次封锁or两段锁?因为有大量的并发访问,为了预防死锁,一般应用中推荐使用一次封锁法,就是在方法的开始阶段,已经预先知道会用到哪些数... 阅读全文
posted @ 2018-07-02 23:46 john8169 阅读(127) 评论(0) 推荐(0)
摘要:范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次... 阅读全文
posted @ 2018-06-21 23:33 john8169 阅读(105) 评论(0) 推荐(0)
摘要:chapter1:InnoDB采用MVCC来支持高并发,默认级别是REPEATABLE READ,并且通过间隙锁策略防止幻读的出现,间隙锁使得InnoDB不仅仅锁定查询涉及的行,还会对索引中的间隙进行锁定以防止幻影行的插入;InnoDB也支持通过特定的语句进... 阅读全文
posted @ 2018-06-17 12:26 john8169 阅读(273) 评论(0) 推荐(0)
摘要:Assuming you're joining on columns with no duplicates, which is a very common case:An inner join of A and B gives the result of A inte... 阅读全文
posted @ 2017-04-06 23:01 john8169 阅读(164) 评论(0) 推荐(0)
摘要:1.MySQL索引原理1.1 索引目的索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从上往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的,如果我想找到m开头的单词... 阅读全文
posted @ 2017-04-04 21:02 john8169 阅读(212) 评论(0) 推荐(0)