索引最左列特徵的一點認識

2021-09-25 17:05:22 字數 695 閱讀 9242

索取最左列特性,的秘密都在於順序排序與儲存這個最簡單的道理。

比如有表tabname上有abc三個列是這樣的。

行號            a       b       c

0                1       a       e

1                2       7       g

2                9       5       7

3                5       0       4

alter table tabname add index idx1(a,b,c)

用a,b,c三個單列組合成乙個輔助索引idx1。這時idx的存放是根據排序規則,比如utf8_unicode_ci,對a列的順序進行存放。這裡是按數字大小順序由小到大,重新排序a列為1,2,5,9,也就行號0,1,3,2後,建立idx,

這時如果要查詢,a>5,自然就很簡單。如果要查a>1 and b<10也可以走這個索引。

但如果要只查b=7,這就跟這個idx1索引的儲存方式沒有關係了而要直接去走掃瞄主鍵索引。

另外,為什麼索引列上的字元字段不能進行進行 like '%str',而可以進行 like 'str%'這樣的查詢呢?這也跟儲存的順序有關。

like '%str'這種查詢方法,模糊了儲存的排序。。而 like 'str%'則是指定了從排序s處開始找。

weak ptr的一點認識

近期在補充和梳理c 方面的知識的時候,遇到了weakptr這個概念和用法,不甚明白,google出了一堆文字,包括boost的shared ptr和weak ptr的比較,以及其他一些部落格裡面給的例子以及解釋。其中有乙個是這樣解釋的,原文大意 在c 的weak ptr裡面,有兩類指標,一類是擁有物...

SLAM的一點認識

那會兒確確實實學習到了很多技能,但對slam的理解還是不是那麼透徹。後來因為被叫去做其他專案,就沒有再接著往下研究了。下面附一下lsd slam的相關 感興趣的朋友可以去關注一下。lsd slam的主頁 github 隨著專案的需要,以及視覺幾何知識的積累,現在需要用到目前更高效 更便於二次開發的最...

SLAM的一點認識

那會兒確確實實學習到了很多技能,但對slam的理解還是不是那麼透徹。後來因為被叫去做其他專案,就沒有再接著往下研究了。下面附一下lsd slam的相關 感興趣的朋友可以去關注一下。lsd slam的主頁 github 隨著專案的需要,以及視覺幾何知識的積累,現在需要用到目前更高效 更便於二次開發的最...