转载: https://zhuanlan.zhihu.com/p/77383599 一、索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。 我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺
最近更新
按时间写下的文章
解决博弈问题的动态规划通用思路
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970# 解决博弈问题动态规划通用思路.py# 我们把石头游戏改得更具有一般性# 你和你的朋友面前有一排石头堆,用一个数组piles表示# pi
搞定计算机网络面试
一 OSI与TCP/IP各层的结构与功能,都有哪些协议 五层协议的体系结构 学习计算机网络时我们一般采取折中的办法,也就是中和OSI和TCP/IP的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。 结合互联网的情况,自上而下的,非常简要的介绍一下各层的作用。 1 应用层 应用层(application layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义
郭德纲写给儿子郭麒麟的家书
人生的真谛要用自己一辈子去理解 甲午年,正月初九。我儿子十八了,正所谓成人长大。学名奇临,取奇妙降临之意。后下海,艺名麒麟,乃仿周大师之遗韵。 人生一世,极不容易。登天难,求人更难。黄连苦,无钱更苦。江湖险,人心更险。春冰薄,人情更薄。过去有句话:既落江湖内,便是薄命人。我本不愿儿从艺,奈何人自有志无法横栏。但有几句话要说清楚。 艺人分几类,相隔种种。一是普通艺人,有一技之长,凭能耐吃饭。一是名演
位运算解决全部其余所有数出现k次,找出唯一出现p次的数的题目
1. 问题描述 给出只包含int类型的数组,所有值出现k(k>1)次,除了一个值,这个值出现了p次(p>1, p%k!=0)。找到这个值。 2. 从只有1bit的特殊情况开始 为了应用位运算,我们应该重新思考integers是如何在计算机中被表示的--通过位。让我们先考虑1位。假如我们有一数组的一bit数(除了0就是1),我们要统计数组中的1,使得当统计1的计数器到达k时,计数器回到0
接口限流算法:漏桶算法 & 令牌桶算法
概念 工作中对外提供的API接口设计都要考虑限流,如果不考虑限流,会造成系统的连锁反应,轻者响应缓慢,重者系统宕机,整个业务线崩溃,如何应对这种情况呢,我们可以对请求进行引流或者直接拒绝等操作,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机。 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流 缓存:缓存的目的是提升系统访问速度和增大系统处理容量 降级:降级是当服务器压
平衡二叉搜索树、B树、B+树、B*树理解
平衡二叉搜索树 概念: 平衡二叉搜索是基于二分法的策略提高数据的查找速度的二叉树的数据结构; 特点: 平衡二叉搜索树是采用二分法思维把数据按规则组装成一个树形结构的数据,用这个树形结构的数据减少物管数据的检索,大大提升了数据检索的速度;平衡二叉树的数据结构组转过程有以下规则。 非叶子节点只能允许最多两个子节点存在; 每一个非叶子节点的左子树上所有结点都小于当前节点的值,右子树上所有结点都大于当前
蓄水池算法
蓄水池采样算法(Reservoir Sampling) 蓄水池采样算法是非常常用的一种流式数据处理算法。 问题 大致描述: 给出一个数据流,这个数据流的长度很大或未知,并且对该数据流中的数据只能访问一次。请写出一个随机选择算法,使得数据流中所有数据被选中的概率相等。 一些实际问题 从 100,000 分调查报告中抽取1000份进行统计。 从一本很厚的电话簿中抽取1000人进行姓氏统计。 从goo
使用函数randa()来实现函数randb()
使用函数randa()来实现函数randb() 原文引自:https://blog.csdn.net/wangruitao1991/article/details/51678815 我们由浅入深,首先来看: 给你一个能成1到7随机数的函数,用它写一个生成1到5的随机数。即使用rand7来实现rand5 rand7可以随机生成1,2,3,4,5,6,7,是等概率的,这里直观的想法是不断地电泳ran
K个一组翻转链表
思路, 首先一个哨兵结点可以帮我们省去判断边界的代码,建立哨兵,并且令dummy.next = head 将pre指向开头 循环开始,只要head不为nil 令tail = pre tail往下走k步,只要tail为nil,立即返回dummy.next nxt记录下tail.next,head即将走向的下一个结点 反转head到tail中的节点,返回新的head和tail def reverse(