select 1 和select *
select * from 表;查詢出表中所有數據,性能比較差;
select 常量 from 表;查詢出結果是所有記錄數的常量,性能比較高;
selelct 常量 from ... 對應所有行,返回的永遠只有一個值,即常量。例如 select 1 from 表名 。。。
所以正常只會用來判斷是否有還是沒有(比如exists子句)。而select * from ... 是返回所有行的所有列。
如果要判斷是否有結果使用select 1,如果要返回數據,使用select * ;
Select Count (*)和Select Count(1)
一般情況下,Select Count (*)和Select Count(1)兩着返回結果是一樣的
如果表中沒有主鍵 ,使用count(1)比count(*)快;
如果有主鍵,那么count(主鍵)最快
count(*)和count(1)的結果一樣,都包括對NULL的統計,而count(字段) 不包括NULL的統計;
實操中,選擇使用 count(1)的情況比較多;
