• 知识杂记


    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存更多东西。(当然反过来。。。)

    实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”

    本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

  • 相关阅读:
    668. Kth Smallest Number in Multiplication Table
    658. Find K Closest Elements
    483. Smallest Good Base
    475. Heaters
    454. 4Sum II
    441. Arranging Coins
    436. Find Right Interval
    410. Split Array Largest Sum
    392. Is Subsequence
    378. Kth Smallest Element in a Sorted Matrix
  • 原文地址:https://www.cnblogs.com/yjf512/p/2726743.html
Copyright © 2020-2023  润新知