最近幾天看了有關(guān)SQL優(yōu)化的知識,當(dāng)我們SQL語句在數(shù)據(jù)庫中做查詢操作的時(shí)候,隨著數(shù)據(jù)表中的數(shù)據(jù)量越來越大,查詢起來耗費(fèi)的時(shí)間也越來越長,這個(gè)時(shí)候就需要我們對數(shù)據(jù)庫來做一些優(yōu)化,以便數(shù)據(jù)庫能快速的執(zhí)行出結(jié)果。涉及的概念大致有:索引、分區(qū)、執(zhí)行計(jì)劃、SQL語句的編寫規(guī)則、數(shù)據(jù)庫本身的優(yōu)化等等。
在大多數(shù)情況下,緩慢的延遲是由查詢或鎖引起的。通過監(jiān)控查詢和鎖,您可以深入和隔離SQL語句和鎖,這將耗費(fèi)大量時(shí)間。也可使用云吶數(shù)據(jù)庫監(jiān)控和數(shù)據(jù)庫查詢監(jiān)控自定義查詢。
盲注就是在sql注入過程中,sql語句執(zhí)行的選擇后,選擇的數(shù)據(jù)不能回顯到前端頁面。此時(shí),我們需要利用一些方法進(jìn)行判斷或者嘗試,這個(gè)過程稱之為盲注。
我們通過一套白名單機(jī)制來實(shí)現(xiàn)兼容性目標(biāo)。使用白名單機(jī)制是基于如下幾點(diǎn)考量。第一點(diǎn)考慮到系統(tǒng)可用資源(主要是內(nèi)存)的限制,一般不會在所有的表的所有上都創(chuàng)建列索引,當(dāng)一個(gè)查詢語句需要使用到列不在列存中存在時(shí),其不能在列存上執(zhí)行。第二點(diǎn),基于性能的的考量,我們完全重寫了一套面向列存的SQL執(zhí)行引擎,包括其中所有的物理執(zhí)行算子和表達(dá)式計(jì)算,其所覆蓋的場景相對MySQL原生行存能夠支持的范圍有欠缺。當(dāng)下發(fā)的SQL中包含一些IMCI執(zhí)行引擎不能支持的算子片段或者列類型時(shí),需要能能夠識別攔截并切換回行存執(zhí)行。