Code Life

boris1993的个人博客

依旧是面试查漏补缺。这次是 MySQL 的最左匹配原则。

废话不多说,直接看 MySQL 官方文档给出的例子。

有这么一个表:

1
2
3
4
5
6
7
CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name, first_name)
);

可以看出,表里面有一个联合索引 (last_name, first_name)。那么,查询的时候,这些语句就可以成功走索引:

1
2
3
4
SELECT * FROM test WHERE last_name = 'Doe';
SELECT * FROM test WHERE last_name = 'Doe' AND first_name = 'John';
SELECT * FROM test WHERE last_name = 'Doe' AND (first_name = 'John' OR first_name = 'Jane');
SELECT * FROM test WHERE last_name = 'Doe' AND first_name >= 'M' AND first_name < 'N';

而这些查询就无法使用这个索引:

1
2
SELECT * FROM test WHERE first_name = 'John';
SELECT * FROM test WHERE last_name = 'Doe' OR first_name = 'John';

也就是说,上面例子中的 last_name 列就是索引的最左前缀,如果要在查询中使用这个索引,那么条件中必须包含 last_name,或者同时包含 last_namefirst_name

MySQL can use multiple-column indexes for queries that test all the columns in the index, or queries that test just the first column, the first two columns, the first three columns, and so on. If you specify the columns in the right order in the index definition, a single composite index can speed up several kinds of queries on the same table.

昨天面试的时候被问到 Java 中的 synchronized 关键字是什么原理,虽然凭着记忆打出来是通过控制对象头的 Monitor 来实现,但是毕竟没吃透这个知识点,还是没啥底气。干脆,这次就从字节码上看看,用了 synchronized 关键字的方法,到底是怎么执行的。

阅读全文 »

迫于手上有张 KnowRoaming 的卡用来收短信,但是为了这玩意再照顾个手机又很烦,正好看到合宙有卖 4G 模块,还有人已经实现了短信转发功能。本着生命在于折腾的精神,果断下单了一张开始搞。

阅读全文 »

还记得我之前买了个猫棒来替换光猫么?用了一个来月,发现这玩意真的不稳定,短则几分钟长则一两天它必定自己重启一次,导致我的网络时不时就会断线。这玩意不好使,我也没有别的光猫,只好找电信装维师傅给我改桥接。可哪成想一个师傅踢皮球让我找另一个师傅,另一个一听我说是悦me 直接就说不能改,只有 SDN 光猫能改。那你们逼我的,我自己改。

阅读全文 »

今天刷 141. Linked List Cycle 142. Linked List Cycle II学到了两个新的判断链表是否存在环的算法 - Floyd龟兔赛跑算法Brent判圈算法

阅读全文 »

我之前宽带一直都是光猫拨号,电脑和 NAS 直连光猫,光猫下挂个二级无线路由器来给其他设备联网,但我早就对这个拓扑不爽了,主要原因是自己花大钱买的 AC86U 派不上用场,只能干点边缘的杂活,而且搞两套局域网怎么看都挺恶心的。之前也试过把路由器改成 AP 模式,让所有设备都直连光猫,但是万恶的电信光猫限制了设备数,只有前 5 台机器能上网,其它的机器虽然能拿到地址,但是上网必定超时。那现在既然有了台服务器,那干脆装个软路由。

软路由系统我打算玩玩 RouterOS,毕竟 iKuai 听说过没用过,据说还出过劫持流量这种问题,不敢用也不想用;OpenWRT 以前玩过,没啥新鲜感,而 RouterOS,之前装着玩的时候就觉得倍有逼格,早就想搞搞它玩玩了。

本篇为二手 MicroServer Gen8 折腾记的第二篇,记录配置猫棒和搭建 RouterOS 软路由的过程。

阅读全文 »
0%