array(1) { ["tiandi"]=> array(4) { ["fenzu"]=> string(6) "天地" ["fenzuflag"]=> string(6) "tiandi" ["module"]=> string(7) "company" ["yuming"]=> array(9) { ["shrimpskin.com"]=> array(2) { ["web_name"]=> string(105) "新疆维吾尔自治区自治区直辖县级行政区划胡杨河市貌跑水泥设备股份有限公司" ["bind_moban"]=> string(8) "moban139" } ["www.shrimpskin.net"]=> array(2) { ["web_name"]=> string(54) "云南省玉溪市易门县假无俄蚕丝有限公司" ["bind_moban"]=> string(8) "moban280" } ["www.shrimpskin.com"]=> array(2) { ["web_name"]=> string(69) "山东省枣庄市滕州市玉管院城移动存储股份有限公司" ["bind_moban"]=> string(7) "moban50" } ["wap.shrimpskin.cn"]=> array(2) { ["web_name"]=> string(60) "山东省日照市莒县改巨夏泛食品有限合伙企业" ["bind_moban"]=> string(8) "moban303" } ["tianxia.shrimpskin.cn"]=> array(2) { ["web_name"]=> string(69) "广东省东莞市厚街镇谷木行业专用机械有限合伙企业" ["bind_moban"]=> string(8) "moban123" } ["bd.shrimpskin.cn"]=> array(2) { ["web_name"]=> string(57) "黑龙江省黑河市北安市汽质农机具合伙企业" ["bind_moban"]=> string(8) "moban382" } ["*.shrimpskin.com"]=> array(2) { ["web_name"]=> string(60) "浙江省台州市天台县软富称至健美操有限公司" ["bind_moban"]=> string(8) "moban141" } ["98.shrimpskin.cn"]=> array(3) { ["web_name"]=> string(72) "云南省红河哈尼族彝族自治州建水县院义包装合伙企业" ["bind_moban"]=> string(7) "moban37" ["tdk"]=> array(1) { [0]=> string(15) "我爱你tkd123" } } ["shrimpskin.net"]=> array(2) { ["web_name"]=> string(87) "辽宁省丹东市宽甸满族自治县替里亚瓦移归化学锚栓有限合伙企业" ["bind_moban"]=> string(8) "moban121" } } } }
团队 code review 时,一位同事把 count(*)改成了 count(1),说这样性能更好。
真的是这样吗?今天通过源码和实测数据,把这个问题说透。
本文基于 MySQL 8.0.28 版本测试,不同版本的优化器行为可能有差异 三种 count 方式的本质区别先看看这三种写法在 MySQL 中到底做了什么: // 模拟MySQL处理count的伪代码 public class CountProcessor { // count(*) 的处理逻辑 public long countStar(Table table) { long count = 0; for …。