Archive for the ‘MySQL’ Category
[轉] RHEL/CentOS 5.x使用yum快速安装 MySql 5.5
PS:MySQL 5.5系列成为稳定版已经有一段时间了,但据我调查了解,在生产环境中还是以5.1系列为主。在国内的大公司里,只确定金山在使用5.5了。
公司的其中几台广告统计服务器,之前的运维直接用了自带安装的MySQL 5.0系列。新来的程序员写了新的广告统计程序,使用了innodb存储引擎,偶发现5.0对innodb引擎支持不怎么好,数据库并发连接数多时会出现丢连接,于是就想升级到5.5试试。因已安装了5.0,所以不想编译安装了。就直接找了一个国外编译好的5.5的yum源,直接升级,跑了一个月了,发现很稳定!就分享一下:
1、安装MySQL 5.5.x的yum源:
rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm
2、安装MySQL客户端的支持包:
yum install libmysqlclient15 --enablerepo=webtatic
[转] MySQL用left join替换select in结构改善效率
今天为客户代维服务器,发现打开WEB速度奇慢,一开始以为是台湾地震,又影响到了海底光缆
客户问我是否要重启下服务器,我说 “不用,你的服务器负载不重,应该不是这个原因”
说完,随手top 了下,晕,还真是负载严重的厉害

LOAD AVG 竟然也达到了 15 16 18左右
于是登陆mysql,找原因
发现大量 copy to temp table 的信息,而语句就是
总结: MySQL主从复制 – MySQL Replication
记:
最近在测试MySQL在高并发下连接失败的方法。在修改 max_connections 等等的方法后没有本质的提升,在PHP中的连接方法尝试retry也没有明显提升,用多个实例来分摊其实也是在同一个机器上抢占资源。只能从硬件方面学习了。一个有效的解决方法就是MySQL的主从replication.
在咨询过羽同学后得出以下结论:从服务器会异步从主服务器单向同步数据。update,insert等操作应在主服务器上进行。对于生产环境中实时性比较高的select操作应在主服务器上执行,其他select操作都在从服务器上进行。
==下面是转载==
MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环。当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知下一次更新。
More »
找出 MySQL 里哪些查询 Query 速度较慢
转一篇文章:
MySQL 中有内建的设定, 在my.cnf 中设定:
log-slow-queries = [slow_query_log_filename]
即可记录查询时间花费超过的10s的SQL 语法(Default).
若要改5秒可设定如: long_query_time = 5 即设定为5s 记录下来.
More »
MySQL: group by … having …
group by就是按照不同的字段进行分组,数值可以实现汇总
例如数据库中有A表,包括学生,学科,成绩三个字段
数据库结构为
学生 学科 成绩
张三 语文 80
张三 数学 100
李四 语文 70
李四 数学 80
李四 英语 80
那么
select 学生,sum(成绩) from A group by 学生;
得到如下结果
学生 成绩
张三 180
李四 230
==============================================================
如果考虑having
语句写成:
select 学生,sum(成绩) from A group by 学生 having 成绩=80;
得到结果就是这样的
学生 成绩
张三 80
李四 160
用having比 JOIN ON 相对好理解一些,简单一些。
[原创]多选/全选checkbox,AJAX提交。另附IE的onchange BUG
最近在为MeePlace 2.7的后台编写多选功能。在一个接一个的版本中,MeePlace的后台是越来越强大了(不够谦虚,hoho),后台采用纯ajax异步(有的时候觉得编程会有点麻烦,但是从1.0开始就是这样的后台,现在要改的话也麻烦,况且AJAX能给用户带来更好的体验,就继续开发吧:D)
这次后台增加的功能中,有一个是能够多选/全选项目,这个已经是历史遗留问题了,在我所有开发的项目中都是用这套自己开发的后台系统,改一改就成。这次布莱恩吧multi-selectable列在了Milestone里,所以就写了。以前有做过多选,不过由于是原始form的post,所以比较简单。这次用AJAX的后台多选操作,我还是想了一下才开始动手的。
我的想法是,通过遍历checkbox,来得到有被选定了的checkbox的value,然后再传给后端进行多选处理。
下面公开MeePlace的这部分代码。

全选按钮。用户点击全选的那个checkbox后,checkbox的onclick=”select_item_all(this,”allitem”,”childitem”)”
其中”allitem”是全选的checkbox的classname,因为也许这个全选会出现两个,或者更多,比如表头和表尾各一。
“childitem”是所有的条目前的checkbox的classname。
JS代码:
More »
Recent Replies / 最新回复