1. 普通青年的索引使用方式 假设我们有一个用户表 tb_user,内容如下: name age sex jack 22 男 rose 21 女 tom 20 男 ... ... ... 执行SQL语句: SELECT name FROM tb_user WHERE age = 20; 默认情况下,MySQL需要遍历整张表,才能找到符合条件的记录.如果在age字段上建立索引,那么MySQL可以很快找到所有符合条件的记录(索引本身通过B+树实现,查起来很快.简单起见,想象一下二分查找和遍历查找的区…
一.前言(Introduction) 使用了Amoeba有一段时间了,发现官方博客:Amoeba使用指南有很多地方都是错误的,在我实战中给到一些错误的指示,所以我想写些在搭建的实战中给大家一点指引.欢迎对我这个系列的文章提出批评和建议,特别是技术上的建议. 二.Amoeba读写分离+分片逻辑图 下面是我画得关于Amoeba读写分离和分片的逻辑图: 三.系列文章索引(Catalog) Ubuntu10下安装JAVA JDK Ubuntu10下MySQL搭建Amoeba_基础 Ubuntu10下My…
04. 一切皆模块 Webpack有一个不可不说的优点,它把所有的文件都都当做模块处理,JavaScript代码,CSS和fonts以及图片等等通过合适的loader都可以被处理. 一.CSS 继续上面的例子 //安装 npm install --save-dev style-loader css-loader //使用 module.exports = { ... module: { rules: [ { test: /(\.jsx|\.js)$/, use: { loader: "babel…
1. 背景 通常情况下,能用一条sql语句完成的查询,我们尽量不用多次查询完成.因为,查询次数越多,通信开销越大.但是,分多次查询,有可能提高缓存命中率.到底使用一个复合查询还是多个独立查询,需要根据实际情况考虑. 2. 一个场景 我们有A.B两张表,需要做这样的一个查询: SELECT a1, a2, (SELECT b1, b2 FROM B WHERE B.b3 = A.a1) FROM A WHERE A.a3 = ? 当然,我们也可以拆分成两次查询: SELECT a1, a2 FRO…
1. 背景 假设有如下SQL语句: SELECT * FROM table1 LIMIT offset, rows 这是一条典型的LIMIT语句,常见的使用场景是,某些查询返回的内容特别多,而客户端处理能力有限,希望每次只取一部分结果进行处理. 上述SQL语句的实现机制是: 从"table"表中读取offset+rows行记录 抛弃前面的offset行记录,返回后面的rows行记录作为最终结果. 这种实现机制存在一个弊端:虽然只需要返回rows行记录,但却必须先访问offset行不会用…
极客时间 Mysql实战45讲 04讲深入浅出索引(下)极客时间 笔记体会: 回表:回到主键索引树搜索的过程,称为回表覆盖索引:某索引已经覆盖了查询需求,称为覆盖索引,例如:select ID from T where k between 3 and 5在引擎内部使用覆盖索引在索引K上其实读了三个记录,R3~R5(对应的索引k上的记录项),但对于MySQL的Server层来说,它就是找引擎拿到了两条记录,因此MySQL认为扫描行数是2最左前缀原则:B+Tree这种索引结构,可以利用索引的"最左前…
极客时间 Mysql实战45讲 04讲深入浅出索引 极客时间(上)读书笔记  笔记体悟 1.索引的作用:提高数据查询效率2.常见索引模型:哈希表.有序数组.搜索树3.哈希表:键 - 值(key - value).4.哈希思路:把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置5.哈希冲突的处理办法:链表6.哈希表适用场景:只有等值查询的场景7.有序数组:按顺序存储.查询用二分法就可以快速查询,时间复杂度是:O(log(N))8.有序数组查询效率高,更新…
笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> 5) --深入浅出索引(下) 这次的笔记从一个简单的查询开始: 建表语句是这样的 mysql> create table T ( ID int primary key, k , s ) NOT NULL DEFAULT '', index k(k)) engine=InnoDB; ,, ,,,,,,,,,,'gg'); 如果要执行 select * from T where k between 3 and 5这条语句,需要执行几次搜…
版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址. 一.首先我们用上节课的存储过程对两张表压100万数据(各100万). 第一表 user_sys我们使用的是InnoDB模式,小卒自己的插入结果是:…
一.索引 索引是存储引擎用于快速查找记录的一种数据结构.我觉得数据库中最重要的知识点,就是索引. 存储引擎以不同的方式使用B-Tree索引,性能也各有不同,各有优劣.例如MyISAM使用前缀压缩技术使得索引更小,但InnoDB则按照原数据格式进行存储.MyISAM索引通过数据的物理位置引用被索引的行,而InnoDB则根据主键引用被索引的行. B-Tree通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同. B-Tree索引能够加快访问数据的速度,因为存储引擎不再需要进行全表扫描来…