非空查詢標準寫法
-- 方法一:不等於空字符串(推薦,可用索引)
SELECT id, firstname, lastname, mail FROM users WHERE mail != '';
-- 方法二:長度大於 0
SELECT id, firstname, lastname, mail FROM users WHERE LENGTH(mail) > 0;
-- 方法三:IS NOT NULL(針對 NULL 值,非空字符串)
SELECT * FROM users WHERE mail IS NOT NULL;
關鍵區別:NULL vs 空字符串
| 值類型 | 判斷條件 | 索引友好度 |
| NULL | IS NOT NULL | 高(可用索引) |
| 空字符串 '' | != '' 或 LENGTH() > 0 | 高 |
| 空白字符 ' ' | TRIM() != '' | 低(函數導致索引失效) |
表記錄總數統計
-- 標準寫法
SELECT COUNT(*) FROM table_name;
-- 帶別名便於應用層映射
SELECT COUNT(*) AS total_rows FROM table_name;
性能提示
COUNT(*) 在 MyISAM 中 O(1),InnoDB 中需掃描(MVCC 可見性檢查)。
- 大表估算行數:
SHOW TABLE STATUS LIKE 'table_name'; 的 Rows 列(近似值)。
- 頻繁統計建議維護計數器表或使用
information_schema.TABLES 緩存值。
- 上一篇文章: MySQL 存儲過程入門:創建、調用、參數傳遞與查詢
- 下一篇文章: Linux 下 MySQL 運維命令大全:啟停、備份、權限、優化一網打盡
Copyright ©
程式碼之家 All Rights Reserved