摘要: 在 MySQL 中,主要有四种类型的索引,分别为: B-Tree 索引, Hash 索引, Fulltext 索引和 R-Tree 索引。我们主要分析B-Tree 索引。 B-Tree 索引是 MySQL 数据库中使用最为频繁的索引类型,除了 Archive 存储引擎之外的其他所有的存储引擎都支持 阅读全文
posted @ 2016-08-10 16:19 立超的专栏 阅读(22740) 评论(5) 推荐(4) 编辑
摘要: B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关 阅读全文
posted @ 2016-08-10 16:16 立超的专栏 阅读(1357) 评论(4) 推荐(0) 编辑
摘要: 结论 如果不清楚自己应该用什么引擎,那么请选择InnoDB,Mysql5.5+的版本默认引擎都是InnoDB,早期的Mysql版本默认的引擎是MyISAM MyISAM 和 InnoDB的适用场景 MyISAM适合:(1)做很多count 的计算;(2)插入不频繁,查询非常频繁;(3)没有事务。 I 阅读全文
posted @ 2016-08-10 16:07 立超的专栏 阅读(10172) 评论(0) 推荐(2) 编辑
摘要: 线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 非共享的包括:线程ID,寄存器组的值,线程的堆栈,错误返回码, 线程的信号屏蔽码, 线程的优先级 阅读全文
posted @ 2016-08-10 16:00 立超的专栏 阅读(1555) 评论(0) 推荐(0) 编辑
摘要: 函数库调用 阅读全文
posted @ 2016-08-10 15:56 立超的专栏 阅读(3407) 评论(0) 推荐(0) 编辑
摘要: 分两种情况, 1) 如果数据能够在内存中放下,比如如果海量数据是ip地址,最多有4G个ip地址,每个ip地址占4个字节 需要内存16G,如果内存在几十G,则完全可以全部装入内存,直接读取大文件,然后创建一个hash表,统计次数,最后再用堆统计最大的n个 2) 如果不能在内存放下,比如海量数据是字符串 阅读全文
posted @ 2016-08-10 15:55 立超的专栏 阅读(982) 评论(0) 推荐(0) 编辑
摘要: 一般解题思路: 1、将数据导入到内存中 2、将数据进行排序 (比如插入排序、快速排序) 3、将排序好的数据存入文件特殊: 1、导入数据库运算 2、分段排序运算 3、传说中bitmap,使用bit位运算 (最快,N/8),例如:比如读到一个数据为341245909这个数据,那就先在内存中找到34124 阅读全文
posted @ 2016-08-10 15:50 立超的专栏 阅读(1084) 评论(0) 推荐(0) 编辑
摘要: 1、能不能通过增加机群(应用机群,服务机群)的方式去解决?好比一台机器能抗200qps, 然后你就40000qps的业务,那你最少需要200台机器,如果考虑到有机器down掉的情况,还要加备用服务器,这个具体加多少台就得去评估了。 防止出现有机器down掉,还得在每台机器上更新列表的情况,我们最好访 阅读全文
posted @ 2016-08-10 15:37 立超的专栏 阅读(2293) 评论(0) 推荐(1) 编辑
摘要: MSS选项:通知最大可接收量。发送SYN的TCP一端使用本选项通告对端它的最大分节大小(maximum segment size)即MSS,也就是它在本连接的每个TCP分节中愿意接受的最大数据量。发送端TCP使用接收端的MSS值作为所发送字节的最大大小。 窗口规模选项:主要指的是滑动窗口中窗口的规模 阅读全文
posted @ 2016-08-10 15:17 立超的专栏 阅读(4214) 评论(0) 推荐(0) 编辑
摘要: 1. 首先,TCP提供客户与服务器之间的连接。TCP客户先与某个给定服务器建立一个连接,然后通过该连接与服务器交换数据,最后终止该连接。 2. 其次,TCP提供了可靠性。超时重传。当TCP向另一端发送数据时,要求对端返回一个确认ACK。如果没有收到确认,TCP就自动重传数据并等待更长时间。在数次重传 阅读全文
posted @ 2016-08-10 14:19 立超的专栏 阅读(2827) 评论(0) 推荐(0) 编辑