知识杂记

知识杂记

2012-10-16 20:38 by 轩脉刃, ... 阅读, ... 评论, 收藏, 编辑

Fixing Poor MySQL Default Configuration Values

http://jeremy.zawodny.com/blog/archives/011421.html

 

这篇是Jeremy Zawodny的一篇文章他指出了几个不好的Mysql默认配置项。

 

首先是max_connect_errors和connect_timeout。

mysql有这样的行为:

如果客户端连接Mysql失败,服务器就会在等候connect_timeout秒之后放弃等候,并且增加连接错误的计数器。然后,当值达到了max_connect_errors的时候,服务器会将这个客户端锁住。知道服务器执行了FLUSH HOSTS命令。

所以当mysql偶然出现网络间断的时候,就很有可能出现连接错误计数器超过max_connect_errors的情况。

所以有几个方法:

1 将max_connect_errors调整成一个很大的数

2 调高connect_timeout的值(默认值为5,建议调高为15或20,也不是越高越好,要考虑到thread_cache_size的控制)

 

mysql默认会对每个连接使用DNS逆向查询。不管这个过程怎么样,其实这个过程其实是不必要的。为了提高性能,也为了降低connect_timeout超时的概率,所以应该在my.cnf中加入skip-name-resolve来跳过这个环节。

 

slave_net_timeout这个字段是设置主从服务器发生意外连接失败的时候,从服务器等候多少时间才会意识到连接失败,从而执行重连操作。

mysql默认设置是3600秒,竟然是整整一个小时,作者认为这是不合理的,毕竟没人希望当两个服务器意外连接失败的时候,过了一个小时从服务器才知道连接失败。所以作者建议这个属性应该调小到30s左右。

 

PHP

php的sql语句变量的引号

①SELECT * FROM article WHERE articleid='$id'

②SELECT * FROM article WHERE articleid=$id

这两句sql语句,理论上,第一句比第二句更有安全性。因为对第一句而言,sql注入需要先闭合单引号,才能有注入行为,一旦使用了addslash或者magic_quotes_gpc为on,就可以防了。但是第二句就没有单引号门槛。

 

mongodb

mongodb的安装超级简单

直接去www.mongodb.org 下载对应的二进制文件,使用./mongod --dbpath /root/data/mongodb/ 命令会自动初始化数据库

基本命令:

http://www.mongodb.org/display/DOCS/Tutorial

 

mongodb是一部分数据在内存中,一部分在磁盘上。所以它能比mysql快,比redis存更多东西。(当然反过来。。。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值