摘要:
今天我们来探讨一下数据库中一个很重要的概念:索引。 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构,即索引是一种数据结构。 我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最 阅读全文
摘要:
今日题目: 今天的题目都比较简单,但是前三道题都有不同的解法,4,5两题就不在这边讨论了,其中第五道题大家可以了解一下floyd判圈算法。 1. 二进制中1的个数 解法一: 解法二,这个解法要由于解法一,循环的次数为1出现的次数: 2. 数值的整数次方 解法一,递归: 解法二,迭代: 3.调整数组顺 阅读全文
摘要:
数据库范式包括第一、第二、第三以及BCNF范式,关于范式的探讨,博主在知乎上看见了一篇很不错的文章,分享文中,这边就不再做阐述。地址:https://www.zhihu.com/question/24696366 在这边列出一些数据库的定义: 1.关系模型:用二维表格结构表示实体集,外键表示实体间联 阅读全文
摘要:
目前,我们已经探讨了许多关于数据库锁的问题,锁能够有效地解决并发的问题,但这也带来了一个严重的缺点,那就是死锁。 死锁在操作系统中指的是两个或两个以上的进程在执行的过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或者系统产生了死锁,这些永远在互 阅读全文
摘要:
今日题目: 细心的同学会发现,第1,2,3题其实对应的是《剑指》书上的同一道题目,即第10题斐波那契数列,这类问题属于递归问题,虽然思路比较简单,但却是属于那种不看答案想不出来,看了答案恍然大悟的题目,因此在平时同学们和博主都应该多练练这一类型的题目,培养这种递归的思维。有趣的是,博主在做题的时候发 阅读全文
摘要:
在上文中,我们探讨了MySQL不同存储引擎中的各类锁,在这篇文章中我们将要讨论的是MySQL是如何实现并发控制的。并发问题有三种,分别为: 首先我们先来看一下悲观锁和乐观锁: 悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。 悲观锁(Pessimistic Lock)实际上是悲观并发控 阅读全文
摘要:
今日题目(分别对应剑指书3~9题): 今日重点为1,2,5,6,后面会有详细的思路解析,现在先来简单地提一下其他题目: 3. 替换空格: 题目将一个句子中的空格转化为“%20”,为使时间复杂度达到O(n),采用从后往前遍历字符串的方法,即先遍历一遍字符串记录空格的个数,以此计算出转化完之后字符串新的 阅读全文
摘要:
参考文档:http://blog.csdn.net/soonfly/article/details/70238902 锁是计算机协调多个进程或纯线程并发访问某一资源的机制。在数据库中,除了传统的计算机资源,如CPU、RAM外,数据也是多个用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据 阅读全文
摘要:
按照个人计划,从今天开始做《剑指offer》上面的算法题,练习平台为牛客网,上面对每道题都有充分的测试实例,感觉还是很不错的。今天下午做了四道题,分别为: 1. 二叉树的深度(书55题) 二叉树的深度 判断平衡二叉树 2. 数组中数字出现的次数(书56题) 数组中只出现一次的两个数字 3. 和为S的 阅读全文
摘要:
1. 事务的定义 数据库事务是数据库管理系统执行过程中的一个逻辑单位,有一个有限的数据库操作序列完成。以 “A账户向B账户汇钱” 为例,一个事务是下面一个操作序列: a. 从A账号中把余额读出来。 b. 对A账号做减法操作。 c. 把结果写回A账号中。 d. 从B账号中把余额读出来。 e. 对B账号 阅读全文