MYSQL NULL 對查詢的影響

2022-09-05 02:54:14 字數 704 閱讀 7080

在建立表時,經常要給某些列設定 not null 的約束。可是為什麼我們盡量不使用 null 呢?這裡記錄幾個簡單的例子

在使用 distinct 時,null 也被視為一類資料,null 存在於多行中時,也會被合併為一條 null 的資料.

所有包含 null 的計算,結果必然是 null。如:

1)5 + null

2)1 * null

3)null / 0 (數字除以 0 會報錯,只有 null 除以 0 結果仍然是 0)

因為 null是不確定值,所以 sql 無法判斷其是否符合條件,故不會入選。如:

select

student_id,

student_name

from

studens

where

student_id

<>10;

若有同學的 student_id 為空(null),無法判斷是否為 10,所以改同學不會被取出(只會取出 sql 已知 student_id 不等於 10 的記錄)

null 的存在,會使 邏輯運算除了 true 與 false,增加第三種值:nuknown(不確定)

其中需要注意的情況是:

1)真 and 不確定:不確定

2)假 and 不確定:假

3)真 or 不確定:真

4)假 or 不確定:不確定

索引對查詢效率的影響

我們將利用advanturewords2008r2中的sales.salesorderdetail表,其中有12萬條資料,非常適合用於測試。不過我們不直接在這張表上做測試,因為這張表上已經有索引了。我們需要新建一張表,將該表中的資料匯入我們新建的test和test2表。test和test2的建立方法...

鏈結伺服器對查詢的影響

收集12小時的profiler跟蹤檔案,用rml分析檢視消耗前n的語句 上圖是某生產環境特定loginname,消耗前n的情況 按總cpu降序 藍色底紋的是幾個呼叫頻繁的過程,可以看到過程平均cpu在1000毫秒以上,平均執行時間在1.5秒左右,注意它們的平均邏輯讀很低!檢視儲存過程 發現有乙個共同...

mysql null和 的區別

平時我們在使用mysql的時候,對於mysql中的null值和空值區別不能很好的理解。注意到null值是未知的,且占用空間,不走索引,dba建議建表的時候最好設定欄位是not null 來避免這種低效率的事情的發生。create table test a int 11 not null,b varc...