go sql

作者: dkzz | 来源:发表于2019-07-18 10:12 被阅读0次

    连接池

    SetMaxOpenConns

    SetMaxOpenConns设置数据库的最大打开连接数。

    如果MaxIdleConns大于0且新的MaxOpenConns小于MaxIdleConns,则MaxIdleConns将减小以匹配新的MaxOpenConns限制。

    如果n <= 0,则打开连接数没有限制。默认值为0(无限制)

    如果最大连接数超过数据库设置,会出现错误
    too many connections

    存疑????
    建议设置为连接数 = ((核心数 * 2) + 有效磁盘数) 
    
    mysql 查询 max_connections
    SHOW VARIABLES LIKE "max_connections";
    
    SetConnMaxLifetime

    SetConnMaxLifetime设置可以重用连接的最大时间。
    过期连接可能会在重用之前懒惰关闭。

    如果d <= 0,则连接将永久重用。

    SetMaxIdleConns

    SetMaxIdleConns设置空闲连接池中的最大连接数。
    如果MaxOpenConns大于0但小于新的MaxIdleConns,则新的MaxIdleConns将减小以匹配MaxOpenConns限制。
    如果n <= 0,则不保留空闲连接。
    默认的最大空闲连接当前为2.这可能会在将来的版本中发生变化。

    查缺补漏

    1. 防止注入
    • 数据库提供prepareStatement方法进行参数预编译,根本上防止sql拼接注入
    • 许多orm也提供了字符过滤功能,对引号进行转义
    • xorm 的 EngineGroup 支持读写分离 ,无需 mysql route、mycat、atlas

    相关文章

      网友评论

          本文标题:go sql

          本文链接:https://www.haomeiwen.com/subject/gwkklctx.html