• ADADADADAD

    MySQL性能调优[ mysql数据库 ]

    mysql数据库 时间:2024-12-24 19:13:06

    作者:文/会员上传

    简介:

    1 Mysql工作原理1.1 mysql体系结构:连接池sql接口分析器优化器查询缓存存储引擎文件系统管理工具1.2 永久定义:修改配置文件/etc/my.cnf[mysql]变量名=值1.3 临时定义:mysql>se

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    1 Mysql工作原理

    1.1 mysql体系结构:

    连接池

    sql接口

    分析器

    优化器

    查询缓存

    存储引擎

    文件系统

    管理工具

    1.2 永久定义:

    修改配置文件/etc/my.cnf

    [mysql]

    变量名=值

    1.3 临时定义:

    mysql>set (global) 变量=

    2 性能调优

    2.1 访问数据时,出结果特别慢。分析可能是由哪些原因导致的?

    (1)硬件配置低:查看应用设备的使用率CPU 内存 存储(硬盘)

    利用top,sar,uptime,free等;

    (2)网络带宽: 使用网络测速软件 网速;

    (3)提供数据库服务软件版本低:

    2.2并发及连接控制

    mysql> show variables like “max_connections”; #允许的最大并发连接数

    mysql> show variables like "connect_timeout";#建立连接时,三次握手的超时时间

    mysql> show variables like "wait_timeout";#建立连接后,等待断开连接的超时时间

    查看当前已使用的连接数:

    mysql>show global status like “max_used_connections”;

    查看默认的最大连接数:

    mysql> show variables like "max_connections";

    理想比率:已使用的连接数/连接并发量<=85%

    2.3 缓存参数控制

    key_buffer_size #用于myisam引擎的关键索引缓存大小

    sort_buffer_size #为每个要排序的线程分配此大小的缓存空间

    read_buffer_size #为顺序读取表记录保留的缓存大小

    read_rnd_buffer_size #为排序结果读取表记录保留的缓存大小

    允许重复使用的线程的数量

    mysql> showvariables like "thread_cache_size";

    为所有线程缓存打开表的数量。

    table_open_cache=2000

    mysql> show variables like "table_open_cache";

    查询缓存相关参数设置?

    MySQL> show variables like "query_cache%";

    查询缓存写锁有效 存储引擎(MYISAM)

    query_cache_wlock_invalidate | OFF

    query_cache_type 0|1|2

    0 关闭 不存储

    1 开启 无条件存储

    2 开启 指定存储才存储

    查询缓存统计信息?

    MySQL> show global status like "qcache%";

    Qcache_hits 0 #查询缓存成功的次数(就是在缓存中找到查询的结果)

    Qcache_inserts 0 #总的

    Qcache_lowmem_prunes 0 #每次缓存达到一定数值,重新清空的次数,清空的次数越大代表缓存的使用不合理(总是被用完)

    2.4 Mysql日志类型

    (1)错误日志:记录数据库服务在启动和运行过程中产生的信息,默认启用

    /etc/my.cnf中的log-error=/var/log/mysqld.log

    (2)binlog日志:默认没有启用。

    (3)查询日志:记录所有执行过的SQL命令,默认没有启用

    vim /etc/my.cnf

    [mysqld]

    general-log #默认存储位置 /var/lib/mysql

    默认名称:主机名.log

    (4)慢查询日志:记录超过指定时间显示查询结果的SQL命令。默认超时时间10s。

    slow-query-log #启用慢查询日志

    slow-query-log-file=文件名 #指定日志名称

    long-query-time=数字 #指定超时时间

    默认存储位置 /var/lib/mysql

    默认名称:主机名-slow.log

    [root@ser54 ~]# mysqldumpslow/var/lib/mysql/主机名-slow.log >sql.txt

    #查看慢查询日志,并把查询超时的查询语句保存下来

    log-queries-not-using-indexes #记录未使用索引的查询

    MySQL性能调优.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载