• mysql访问慢解决


    配置变更思路:

    扩大MySQL连接数至2000,同时扩大操作系统最大文件描述符;扩大innodb缓存池

    操作步骤:

    vi /etc/my.cnf

    max_connections = 2000
    innodb_buffer_pool_size = 20M


    vi /usr/lib/systemd/system/mysqld.service

    在文件最后添加:

    LimitNOFILE=65535

    LimitNPROC=65535


    重启服务:
    systemctl daemon-reload
    systemctl restart mysqld


    选项就能禁用DNS解析,连接速度会快很多

    show variables like 'skip_%';

    vi /etc/my.cnf

    [mysqld]
    skip-name-resolve

    systemctl restart mysqld

    grant all privileges on *.* TO 'root'@'10.88.5.211' identified by 'root123456' with grant option;

    FLUSH PRIVILEGES;

    MySQL利用DNS做解析解释:

    当 mysql 客户端连接 mysql 服务器 (进程为:mysqld),mysqld 会创建一个新的线程来处理该请求。该线程先检查是否主机名在主机名缓存中。如果不在,线程试图解析主机名。
    如果系统是线程安全的,则 gethostbyaddr_r () 和 gethostbyname_r() 被调用,来执行主机名解析;
    如果系统不支持线程安全调用,则线程会锁定一个互斥体并调用 gethostbyaddr() 和 gethostbyname() 。在这种情况下,在第1个线程解锁互斥体前,没有其它线程可以解析不在主机名缓存中的主机名。
    通过 --skip-name-resolve 选项启动 mysqld 来禁用DNS主机名查找。此时,只可以使用 MySQL 授权表中的 IP 地址,不能使用主机名。
    如果 DNS 解析很慢且包括许多主机,通过用--skip-name-resolve 禁用DNS查找或增加HOST_CACHE_SIZE定义(默认值:128)并重新编译mysqld来提高性能;
    通过 --skip-host-cache 选项启动服务器来禁用主机名缓存。要想清除主机名缓存,执行 FLUSH HOSTS 语句或执行 mysqladmin flush-hosts 命令。
    如果要完全禁止 TCP/IP 连接,用 --skip-networking 选项启动 mysqld 。

  • 相关阅读:
    从输入网址到页面呈现的过程
    Git 常用命令合集
    Jquery浅克隆与深克隆
    CSS变量教程
    设计模式
    Servlet和JSP简述
    SQL Server,MySQL,Oracle三者的区别
    mysql事务处理
    计时器
    java中length,length(),size()区别
  • 原文地址:https://www.cnblogs.com/effortsing/p/10011343.html
Copyright © 2020-2023  润新知