mysql中count函数注意事项
表:
CREATE TABLE `user` (
`id` int(5) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
`password` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
其中有数据为:
1 name1 123456
2 name2 123456
3 name3 123456
4 name4 NULL
以下三个查询返回几呢?
(1)select count(*) from `user`
(2)select count(name) from `user`
(3)select count(password) from `user`
答案是:4,4,3
因为:
(1)count(*)是对行数目进行计数,所以当然是4
(2)count(column_name)是对列中不为空的行进行计数,所以count(name)=4,而count(password)=3
相关文档:
【书名】高性能MySQL(第二版)
【原书名】High Performance MySQL, second edition
【作者】Baron Schwartz,Peter Zaitsev,Vadim
Tkachenko,Jeremy D.Zawodny,Arjen Lentz,Derek
J.Balling 著
【译者】王小东 李军 康建勋 译
【出版社】电子工业出版社
【书号】978- ......
//得分计算四舍五入
SELECT ROUND((SUM(getfeng)/SUM(totalfeng))*100) as feng from answerdata WHERE uid='151' AND targetid IS NOT NULL
1.ceil () /ceiling() 向上取整
例: ceil(1.2) = 2
2.floor () 向下取整
例: floor(1.2) = 1
3.round() 四舍五入
&n ......
对mysql的优化不在行,搞过几次优化,但是都不是很理想,还是浪费资源太多。一直发现我的mysql的缓存命中率极差,情况良好的时候到达过60-70%,但是运行时间一长,只有10-20%。查了一些资料,关于缓存的一些参数记录
mysql> SHOW VARIABLES LIKE ‘%query_cache%’;
+—————&m ......
新增用户:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'你的远端ip' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
如:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.19.220' IDENTIFIED BY '123456' WITH GRANT OPTION;
登录到新增的用户:(假如原授权机的IP为10.10.19.222)
mysql -uroot -p123456&n ......