共計 894 個字符,預(yù)計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
mysql 想必很多程序猿都是不陌生的。很多人在糾結(jié) count 的用法,怎么樣才能查詢效果最好。今天來談?wù)勍枞?TV 小編的一些看法,僅供參考。
1、咱們先準(zhǔn)備建一個表,并準(zhǔn)備好測試數(shù)據(jù)方便后續(xù)步驟測試
以 InnoDB 引擎表為例
建表語句如下
CREATE TABLE test.test
a VARCHAR(50) NOT NULL COMMENT 'ddfdf',
b VARCHAR(15) NOT NULL COMMENT 'fds',
c VARCHAR(20) NOT NULL COMMENT 'asda',
d VARCHAR(8) NOT NULL COMMENT 'ads',
e longblob NOT NULL COMMENT 'asda',
f VARCHAR(2000) COMMENT 'ads',
g VARCHAR(8) NOT NULL COMMENT 'assd',
h DATE NOT NULL COMMENT 'adsad',
z VARCHAR(10) NOT NULL COMMENT 'adsd'
ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、登陸到 mysql 并且換數(shù)據(jù)庫
執(zhí)行建表語句如下圖所示
3、然后是準(zhǔn)備測試數(shù)據(jù),簡單查一下是否有數(shù)據(jù),如下圖所示
4、接下來開始做測試
在沒有 where 條件的情況下
有人覺得 count(*) 比 count(字段) 要快,還有人覺得 count(字段) 比 count(*) 要快?
那到底那個快,咱們一試便知,請看下圖
根據(jù)圖中結(jié)果顯示,明顯 count(字段) 快一些
5、那在有 where 條件的情況呢?count(*) 和 count(字段) 誰更快?
請看下圖執(zhí)行效果
count(*) 快一點,可能是數(shù)據(jù)量太少看不出太明顯的效果
6、當(dāng)然可以通過查看執(zhí)行計劃進行分析
在執(zhí)行的 sql 前面加上 desc 或者 explain 即可,如下圖所示
最后總結(jié)一下 1. 在沒有 where 條件下,建議 count(字段)2. 在有 where 條件的情況下,建議 count(*) 最后總結(jié)一下 1. 在沒有 where 條件下,建議 count(字段)2. 在有 where 條件的情況下,建議 count(*)
向 AI 問一下細(xì)節(jié)
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!