在整体的系统运行过程中,数据库服务器 MySQL 的压力是最大的,不仅占用很多的内存和 cpu 资源,而且占用着大部分的磁盘 io 资源,

连 PHP 的官方都在声称,说 PHP 脚本 80% 的时间都在等待 MySQL 查询返回的结果。由此可见,提高系统的负载能力,降

低 MySQL 的资源消耗迫在眉睫。

1、页面缓存功能:

页面缓存功能降低MySQL的资源消耗的(系统本身就已经考虑,采用生成HTML页面,大大降低了数据库的压力)。

2、mysql服务器的优化

2.1、修改全站搜索

修改my.ini(my.cnf) ,在 [mysqld] 后面加入一行“ft_min_word_len=1”,然后重启Mysql,再登录网站后台(模块管理->全站搜索)重建全文索引。

2.2、记录慢查询sql语句,修改my.ini(my.cnf),添加如下代码:

#log-slow-queries

long_query_time = 1 #是指执行超过多久的 sql 会被 log 下来

log-slow-queries = E:/wamp/logs/slow.log #设置把日志写在那里,可以为空,系统会给一个缺省的文件

#log-slow-queries = /var/youpath/slow.log linux下     host_name-slow.log

log-queries-not-using-indexes

2.3、mysql缓存的设置

mysql>show variables like '%query_cache%';     mysql本身是有对sql语句缓存的机制的,合理设置我们的mysql缓存可以降低数据库的io资源。

#query_cache_type= 查询缓存的方式(默认是 ON)

query_cache_size 如果你希望禁用查询缓存,设置 query_cache_size=0。禁用了查询缓存,将没有明显的开销

query_cache_limit 不缓存大于这个值的结果。(缺省为 1M)

2.4、查询缓存的统计信息

mysql> SHOW STATUS LIKE ‘qcache%’;

Qcache_free_blocks 缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE 会对缓存中的碎片进行整理,从而得到一个空闲块。

Qcache_free_memory 缓存中的空闲内存。

Qcache_hits 每次查询在缓存中命中时就增大。

Qcache_inserts 每次插入一个查询时就增大。命中次数除以插入次数就是不中比率;用 1 减去这个值就是命中率。在上面这个例子中,大约有 87% 的查询都在缓存中命中。

Qcache_lowmem_prunes 缓

存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个数字在不断增长,就表示可能碎片非常严重,或者内存很

少。(上面的 free_blocks 和 free_memory 可以告诉您属于哪种情况)。

Qcache_not_cached 不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句。

Qcache_queries_in_cache 当前缓存的查询(和响应)的数量。

Qcache_total_blocks 缓存中块的数量。通常,间隔几秒显示这些变量就可以看出区别,这可以帮助确定缓存是否正在有效地使用。运行 FLUSH STATUS 可以重置一些计数器,如果服务器已经运行了一段时间,这会非常有帮助。

2.5、my.ini(my.conf)配置

2.5.1、key_buffer_size = 256M

# key_buffer_size指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。     对于内存在4GB左右的服务器该参数可设置为256M或384M。注意:该参数值设置的过大反而会是服务器整体效率降低!

2.5.2、

max_allowed_packet = 4M

thread_stack = 256K

table_cache = 128K

sort_buffer_size = 6M

查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。

2.5.3、

read_buffer_size = 4M

读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每个连接独享!

2.5.4、join_buffer_size = 8M

联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每个连接独享!

2.5.5、

myisam_sort_buffer_size = 64M

table_cache = 512

thread_cache_size = 64

query_cache_size = 64M

指定MySQL查询缓冲区的大小。可以通过在MySQL控制台执行以下命令观察:

# > SHOW VARIABLES LIKE '%query_cache%';

# > SHOW STATUS LIKE 'Qcache%';

# 如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况;

#如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲;

Qcache_free_blocks,如 果该值非常大,则表明缓冲区中碎片很多

2.5.6、

tmp_table_size = 256M

max_connections = 768

指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现Too Many Connections的错误提示,则需要增大该参数值。

2.5.7、

max_connect_errors = 10000000

wait_timeout = 10

指定一个请求的最大连接时间,对于4GB左右内存的服务器可以设置为5-10。

2.5.8、

thread_concurrency = 8

该参数取值为服务器逻辑CPU数量×2,如果服务器有2颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为4 × 2 = 8

2.5.9、

skip-networking

开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接!

分享到:

2011-01-11 11:29

浏览 731

分类:数据库

评论

mysql数据库优化skip_优化配置mysql数据库优化相关推荐

  1. hdp amabri mysql_MySQL数据库之Ambari 安装配置 MySql

    本文主要向大家介绍了MySQL数据库之Ambari 安装配置 MySql ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 在安装Ambari时,Ambari默认的数据库是Pros ...

  2. .net odbc连接mysql数据库,下载安装MySQL数据库ODBC驱动和配置MySQL ODBC数据源

    1. 下载MySQL ODBC驱动: 打开的页面如下图所示,可根据实际使用情况选择下载相应的MSI安装程序,使用Visual C++ 6.0环境编程请下载32位MSI安装程序. 点击下载后出现如下页面 ...

  3. mysql双机数据热备份_配置MySQL数据库双机热备份

    1.mysql 数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题.还好 mysql 数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中.实现 mysql ...

  4. mysql multi主从复制_mysqld_multi方式配置Mysql数据库主从复制

    mysqld_multi设计用于管理在同一台机器上运行的多个mysqld进程,这些进程使用不同的socket文件并监听在不同的端口上.mysqld_multi可以批量启动.关闭.或者报告这些mysql ...

  5. idea怎么和mysql连接并执行_IDEA配置mysql数据库的操作

    只需要添加Database即可 第一步:在界面最右边找到这个Database,找不到就在View中开启 第二步:选择Data Source,然后找到MySQL 第三步:按照如图所示连接 最上面为连接名 ...

  6. 下载安装MySQL数据库ODBC驱动和配置MySQL ODBC数据源

    下载安装SQL Server数据库ODBC驱动和配置SQL Server ODBC数据源 1. 下载MySQL ODBC驱动: 下载地址:MySQL ODBC驱动程序官网下载 打开的页面如下图所示,可 ...

  7. nacos配置mysql数据库不管用_Nacos配置mysql数据库

    在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况.0.7版本增加了支持mysql数据源能力,所以只要使用0.7及以上版本的nacos,便可以配置my ...

  8. django框架访问mysql数据库_Django框架怎么配置mysql数据库

    Django框架怎么配置mysql数据库 发布时间:2020-08-01 10:37:54 来源:亿速云 阅读:67 作者:小猪 这篇文章主要讲解了Django框架怎么配置mysql数据库,内容清晰明 ...

  9. mysql 加快命中_合理配置MySQL缓存 提高缓存命中率

    众所周知,系统读取数据时,从内存中读取要比从硬盘上速度要快好几百倍.故现在绝大部分应用系统,都会最大程度的使用缓存(内存中的一个存储区域),来提高系统的运行效率.MySQL数据库也不例外.在这里,笔者 ...

  10. ubuntu mysql的穷_Ubuntu安装配置Mysql

    三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt/sourc ...

最新文章

  1. redis学习之——Redis事务(transactions)
  2. Excel 2013:如何实现数据分列
  3. leetcode 二进制求和 addBinary
  4. favicon.ico是什么?
  5. 深度学习笔记(30) Inception网络
  6. linux mii,Linux mii-tool 命令用法详解-Linux命令大全(手册)
  7. centOS7.6安装MySQL8
  8. 无法生成临时类(result=1)的一种解决方法2
  9. js设置radio 和checkbox 单选
  10. 阿里云成为国内首个时序数据库标准工作组成员
  11. 我做的第一个PHP网站
  12. 如何编译生成dll文件以及如何调用dll文件
  13. idea 的Igonre 设置
  14. 去除水晶报表小数点最后多余的0
  15. viewpage无限轮播
  16. 富途证券 8.14
  17. 中轴型SpA的两种诊断分支具有可比性
  18. red5源码分析---12
  19. 如何将自己的代码上传到github
  20. 数通 | 某些基本知识梳理

热门文章

  1. iOS开发之数据存储之Preference(偏好设置)
  2. zoj2432 hdoj1423 最长公共上升子序列(LCIS)
  3. Hibernate架构
  4. input中的name,value以及label中的for
  5. [转载]如何决定要使用多少点来做FFT?(转载)
  6. DevExpress GridControl 导出为Excel
  7. 软考信息系统项目管理师_考试题型介绍_选择题75分_45分过_案例分析题_75分_45分过_计算题_论文题的架构和写法---软考高级之信息系统项目管理师002
  8. k8s核心技术-Pod(两种实现机制)_Pod底层实现机制_共享网络_共享存储_Pause根容器_Pod数据卷---K8S_Google工作笔记0021
  9. nginx工作笔记004---配置https_ssl证书_视频服务器接口等
  10. Netty工作笔记0046---异步模型原理剖析