数据结构与算法
花浓丶醉清风
这个作者很懒,什么都没留下…
展开
-
归并排序的实现
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plaincopy//原创 2015-10-06 21:59:24 · 293 阅读 · 0 评论 -
MySql索引算法原理解析(通俗易懂,只讲B-tree)
刚开始学习的时候,百度去查,但发现好多说得太复杂不好理解,结合各个文章总结一下(建议大概看文字,不理解不要紧,然后再看图的执行步骤然后在结合文字,这样一切就清晰好多)B-tree,B是balance,一般用于数据库的索引。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。而B+tree是B-tree的一个变种,大名鼎鼎的MySQL就普遍使用B+tree实现其索引原创 2016-01-27 22:25:16 · 426 阅读 · 0 评论 -
Innodb索引和锁的学习笔记
附录:前段时间学习了下innodb锁的相关知识,对锁和事务有了大体理解,这里做个小总结。1.Innodb事务和锁的关系。 Innodb区别于MyISAM的两个特点就是Innodb对于事务的支持和对行锁的支持。事务要求了一组SQL语句的ACID特性,同时为了避免对一行记录的并发更新,innodb本身会在一定情况下加锁,然后等语句所在的事务退出后(rollbak或者commit)释放锁。原创 2016-02-22 09:13:52 · 867 阅读 · 0 评论 -
mysql事务和锁InnoDB
背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险原创 2016-08-07 12:02:55 · 710 阅读 · 0 评论 -
什么是脏读、不可重复读、幻读
1. 脏读 :脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。2. 不可重复读 :是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次原创 2016-08-07 12:12:23 · 332 阅读 · 0 评论 -
死锁: delete+insert不存在PK
###### 表结构及数据CREATE TABLE `tb` ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) , `b` int(11) , `c` int(11) , PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;/*Data原创 2016-08-07 14:07:39 · 1090 阅读 · 0 评论