• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > MySQL参数table_open_cache的设置

MySQL参数table_open_cache的设置

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了mysql table cache,table open cache,table cache,spark cache table,alter table cache等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

MySQL参数table_open_cache的设置


MySQL默认的table_open_cache为64,这个数值是偏小的,如果max_connections较大,则容易引起性能问题。
为了避免线程相互干扰,每个访问表的线程各自维护一个文件描述符,多耗了内存但是提高了性能,即一个sql若调用了2次表,也需要分配2个文件描述符;对于MyISAM表,第一次打开时需要两个描述符,其中一个为索引文件(可被后续线程共享);假定系统有200个并发连接,则需将此参数设置为200*N(N为每个连接所需的文件描述符数目);倘若cache已满且没有可清理的对象,则会临时调大该值,类似于oracle的pga设置;可通过监控系统状态变量opened_tables查看此cache的繁忙程度,如果opened_tables不断飙升且系统不运行flush tables,则考虑加大table_open_cache值;
当无法为新连接分配足够的描述符时,会遭遇ERROR '...' not found (errno: 23)或者 Can't open file: ... (errno: 24),此时可考虑减小table_open_cache或max_connections。也可以通过open_files_limit调大mysqld可打开的文件数目。
关于table_open_cache设置较小的案列如下:
数据库查询效率慢,show processlist 发现比较多的查询正在opening table。
进一步确认,执行以下语句:
mysql> show global status like 'open%tables%';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Open_tables | 345 |
| Opened_tables | 9734116 |
+---------------+---------+
Opened_tables数值非常大,说明cache太小,导致要频繁地open table,可以查看下当前的table_open_cache设置:
mysql> show variables like '%table_open_cache%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| table_open_cache | 64|
+------------------+-------+
默认是64,一些资料推荐把这个数值设置为(max_connections* 查询同时用到的表数)。我实践中发现,一般设置为max_connections就没问题了(如果还不够,可以继续加大,但不能设置大得离谱,可能会引发其他问题)。即时生效的设置:
mysql> set global table_open_cache=1024;
Query OK, 0 rows affected (0.00 sec)
设置后可以观察一下,如果opening table不再怎么出现,说明此修改是有效的,将其添加到mysql的配置文件,这样数据库重启后仍可保留此设置。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySQL参数table_open_cache的设置

相关文章

  • 2017-05-26二层(链路层)数据包发送过程分析
  • 2017-05-26Listview详解,listview
  • 2017-05-227.4 Android 调用 WebService
  • 2017-05-26应该在find命令中使用-execdir代替-exec
  • 2017-05-26[Android]Animation 动画介绍和实现,androidanimation
  • 2017-05-26Android网络编程(四)从源码解析Volley
  • 2017-05-26Android APK免安装启动
  • 2017-05-26Android实战简易教程-第六十六枪(服务器端搭建和服务器端Json数据交互)
  • 2017-05-26Android镜像文件ramdisk.img,system.img,userdata.img介绍,ramdisk镜像
  • 2017-05-26Android 的系统架构,Android系统架构

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 踩坑实录 Android studio中关于 No cached version of **** available for of处理办法,androidcached
    • Android Studio添加Parcelable序列化小工具(快速提高开发效率)
    • Android设置透明状态栏和透明导航栏,android导航栏
    • 手势事件,html5手势事件
    • Android动画三部曲之一 View Animation & LayoutAnimation
    • android开发我的新浪微博客户端-载入页面UI篇(1.1),androidui
    • Android游戏开发之游戏帧动画的播放与处理,android游戏开发
    • AsyncTask源码探究,asynctask源码
    • Google Play发布App中遇到"多个APK:版本1未提供给任何设备配置使用。"问题的解决方法,appapk
    • 一个难倒 3年 android开发经验 " 工程师 " 的 "bug"

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有