关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » MySQL »优化MySQL数据库性能的实际操作方案

    优化MySQL数据库性能的实际操作方案

    2010-06-02 13:58:00 出处:ITJS
    分享

    以下的文章主要是对优化MySQL数据库性能的实际操作方案的介绍,我们大家都知道MySQL数据库的速度是快还是慢主要是由配置优化决定的,如果是我们自己用,比如几个人的时候,人数较少就算优化了也看不出什么效果来。

    如果人数非常多的时候就会看出来了,下面介绍十个比较重要的参数配置,max_connections,record_buffer,back_log,interactive_timeout,sort_buffer,table_cache,thread_cache_size,wait_timeout这几个参数配置好了会得到很大的优化MySQL数据库性能啊,第二页有一个推荐配置。

    一、max_connections:

    允许的同时客户的数量。增加该值增加 MySQLd 要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 too many connections 错误。 默认数值是100,我把它改为1024 。

    二、record_buffer:

    每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果你做很多顺序扫描,你可能想要增加该值。默认数值是131072(128k),我把它改为16773120 (16m)

    三、key_buffer_size:

    索引块是缓冲的并且被所有的线程共享。key_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。默认数值是8388600(8m),我的MySQL主机有2gb内存,所以我把它改为 402649088(400mb)。

    四、back_log:

    要求 MySQL 能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。

    back_log 值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的tcp/ip连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于你的操作系统的限制将是无效的。

    当你观察你的主机进程列表,发现大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | null | connect | null | login | null 的待连接进程时,就要加大 back_log 的值了。默认数值是50,我把它改为500。

    五、interactive_timeout:

    服务器在关闭它前在一个交互连接上等待行动的秒数。一个交互的客户被定义为对 MySQL_real_connect()使用 client_interactive 选项的客户。 默认数值是28800,我把它改为7200。

    六、sort_buffer:

    每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速order by或group by操作。默认数值是2097144(2m),我把它改为 16777208 (16m)。

    七、table_cache:

    为所有线程打开表的数量。增加该值能增加MySQLd要求的文件描述符的数量。MySQL对每个唯一打开的表需要2个文件描述符。默认数值是64,我把它改为512。

    八、thread_cache_size:

    可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。通过比较 connections 和 threads_created 状态的变量,看到的是这个变量的作用。我把它设置为 80。

    九、MySQL的搜索功能

    用MySQL进行搜索,目的是能不分大小写,又能用中文进行搜索只需起动MySQLd时指定 --default-character-set=gb2312

    十、wait_timeout:

    服务器在关闭它之前在一个连接上等待行动的秒数。 默认数值是28800,我把它改为7200。

    注:参数的调整可以通过修改 /etc/my.cnf 文件并重启 MySQL 实现。这是一个比较谨慎的工作,上面的结果也仅仅是我的一些看法,你可以根据你自己主机的硬件情况(特别是内存大小)进一步修改。

    据说这是高手优化MySQL数据库性能,供大家参考,其中连接数: max_connections=1500可以根据服务器的性能更改.

    #set-variable = connect_timeout=5

    #set-variable = wait_timeout=5

    建议启用,负担重的服务器可以适当减少持续连接时间

    [MySQLd]  basedir=D:/MySQL  #bind-address=ip datadir=D:/MySQL/data  #language=D:/MySQL/share/your language directory  #slow query log#=  #tmpdir#=  #port=3306 set-variable = max_connections=1500  skip-locking  #skip-networking  set-variable = key_buffer=384M  set-variable = max_allowed_packet=1M  set-variable = table_cache=512  set-variable = sort_buffer=2M  set-variable = record_buffer=2M  set-variable = thread_cache=8  # Try number of CPU's*2 for thread_concurrency  set-variable = thread_concurrency=8  set-variable = myisam_sort_buffer_size=64M  #set-variable = connect_timeout=5  #set-variable = wait_timeout=5  server-id = 1 [isamchk]  set-variable = key_buffer=128M  set-variable = sort_buffer=128M  set-variable = read_buffer=2M  set-variable = write_buffer=2M  [myisamchk]  set-variable = key_buffer=128M  set-variable = sort_buffer=128M  set-variable = read_buffer=2M  set-variable = write_buffer=2M  [WinMySQLadmin]  Server=D:/MySQL/bin/MySQLd-nt.exe  

    上面说了这么多内容,是关于对优化MySQL数据库性能的介绍,不知道各位对MySQL的认识是不是更上一层楼了,时时关注ITJS,学习最新Mysql技术。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    抖音安全与信任开放日:揭秘推荐算法,告别单一标签依赖

    ultraedit编辑器打开文件时,总是提示是否转换为DOS格式,如何关闭?

    Cornell大神Kleinberg的经典教材《算法设计》是最好入门的算法教材

    从 Microsoft 下载中心安装 Windows 7 SP1 和 Windows Server 2008 R2 SP1 之前要执行的步骤

    Llama 2基于UCloud UK8S的创新应用

    火山引擎DataTester:如何使用A/B测试优化全域营销效果

    腾讯云、移动云继阿里云降价后宣布大幅度降价

    字节跳动数据平台论文被ICDE2023国际顶会收录,将通过火山引擎开放相关成果

    这个话题被围观超10000次,火山引擎VeDI如此解答

    误删库怎么办?火山引擎DataLeap“3招”守护数据安全

    IT头条

    平替CUDA!摩尔线程发布MUSA 4性能分析工具

    00:43

    三起案件揭开侵犯个人信息犯罪的黑灰产业链

    13:59

    百度三年开放2.1万实习岗,全力培育AI领域未来领袖

    00:36

    工信部:一季度,电信业务总量同比增长7.7%,业务收入累计完成4469亿元

    23:42

    Gartner:2024年全球半导体营收6559亿美元,AI助力英伟达首登榜首

    18:04

    技术热点

    iOS 8 中如何集成 Touch ID 功能

    windows7系统中鼠标滑轮键(中键)的快捷应用

    MySQL数据库的23个特别注意的安全事项

    Kruskal 最小生成树算法

    Ubuntu 14.10上安装新的字体图文教程

    Ubuntu14更新后无法进入系统卡在光标界面解怎么办?

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。