摘要:
第2章 对象及变量的并发访问 2.1 synchronized同步方法 方法内的变量为线程安全: 方法内部的变量是线程私有的 方法中有一个变量num,后面对它赋值 两个线程同时调用这个方法,对其赋不同的值,不会出现非线程安全的问题 实例变量非线程安全: 多个线程共同访问一个对象中的实例变量,则会出现 阅读全文
摘要:
OR: 查询条件包含or时,可能会导致索引失效 只有当or左右查询字段均为索引时,才会生效 组合索引: 组合索引,不是使用第一列索引,索引失效 下面是一些例子,假设索引是(col1, col2, col3),那么: 不能继续使用索引中范围条件(bettween、<、>、in等)右边的列 like 以 阅读全文
摘要:
乐观锁和悲观锁是属于一种思想,不是具体的锁。 悲观锁(Pessimistic Lock): 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。 传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁 阅读全文
摘要:
第1章 MySQL体系结构和存储引擎 1.3 MySQL存储引擎 数据库和文件系统最大的区别在于:数据库是支持事务的 InnoDB存储引擎: MySQL5.5.8之后默认的存储引擎,主要面向OLTP(联机事务处理,面向基本的、日常的事务处理) 支持事务,支持外键、支持行锁(有的情况下也会锁住整个表) 阅读全文
摘要:
BST存在的问题: BST存在的主要问题是,数在插入的时候会导致树倾斜,不同的插入顺序会导致树的高度不一样,而树的高度直接的影响了树的查找效率。 理想的高度是logN,最坏的情况是所有的节点都在一条斜线上,这样的树的高度为N。 平衡二叉查找树: 平衡树在插入和删除的时候,会通过旋转操作将高度保持在l 阅读全文
摘要:
B树 一、基本原理 B树是一种查找树,它最初启发于二叉查找树。 二叉查找树的特点是每个非叶节点都只有两个孩子节点。然而这种做法会导致当数据量非常大时,二叉查找树的深度过深,搜索算法自根节点向下搜索时,需要访问的节点也就变的相当多。 如果这些节点存储在外存储器中,每访问一个节点,相当于就是进行了一次I 阅读全文
摘要:
概述: 汉语字典的正文本身就是一个聚集索引。 比如要查z开头的,我们会自然翻到字典的后半部分,而不是从前往后一页一页翻,避免了全表扫描。 而当我们翻到那一页,就能得到内容,而不需要再去查其他目录来找到需要找的内容。 字典正文内容本身就是一种按照一定规则排列的索引,索引中的叶子节点保存的就是要查找的数 阅读全文
摘要:
第1章 MySQL架构与历史 1.2 并发控制 MySQL在两个层面实现并发控制:服务器层与存储引擎层。 读锁和写锁: 在处理并发读或写时,可以通过实现一个由两种锁组成的系统来解决问题。 这两种锁通常被称为共享锁和排他锁,或者称为读锁和写锁。 读锁:是共享的,或者说是相互不阻塞的,多个客户可以在同时 阅读全文
摘要:
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 目前,主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。满足最低要求的叫第一范式 阅读全文
摘要:
1 搭建环境所使用的资源 VMware Workstation 9 ubuntu-14.04.2-desktop-amd64.iso jdk-7u80-linux-x64.tar.gz hadoop-2.5.0.tar.gz zookeeper-3.4.5-cdh5.1.0.tar.gz hbase 阅读全文