以下的文章主要描述的是MySQL数据库是如何正确计算打开文件数的实际操作流程,大家都知道每打开一个MyISAM表,就需要对其使用2个文件描述符,所以我们就来验证一下MySQL数据库如何计算打开文件数。
试验
从手册的"6.4.8. How MySQL Opens and Closes Tables"可以了解到,每打开一个MyISAM表,就需要使用2个文件描述符,咱们来验证一下。
1. 重启mysqld
/etc/init.d/mysql restart
2. 看看打开了几个文件
lsof | grep /home/mysql ... mysqld 24349 mysql 5u unix 0x000001041e8de040 4244009 /home/mysql/mysql.sock mysqld 24349 mysql 6u REG 8,33 2048 30425188 /home/mysql/mysql/host.MYI mysqld 24349 mysql 7u REG 8,33 0 30425189 /home/mysql/mysql/host.MYD mysqld 24349 mysql 8u REG 8,33 2048 30425153 /home/mysql/mysql/user.MYI mysqld 24349 mysql 9u REG 8,33 892 30425155 /home/mysql/mysql/user.MYD mysqld 24349 mysql 10u REG 8,33 5120 30425126 /home/mysql/mysql/db.MYI mysqld 24349 mysql 11u REG 8,33 3080 30425148 /home/mysql/mysql/db.MYD mysqld 24349 mysql 12u REG 8,33 4096 30425154 /home/mysql/mysql/tables_priv.MYI mysqld 24349 mysql 13u REG 8,33 0 30425157 /home/mysql/mysql/tables_priv.MYD mysqld 24349 mysql 14u REG 8,33 4096 30425143 /home/mysql/mysql/columns_priv.MYI mysqld 24349 mysql 15u REG 8,33 0 30425156 /home/mysql/mysql/columns_priv.MYD mysqld 24349 mysql 16u REG 8,33 4096 30425127 /home/mysql/mysql/procs_priv.MYI mysqld 24349 mysql 17u REG 8,33 0 30425136 /home/mysql/mysql/procs_priv.MYD mysqld 24349 mysql 18u REG 8,33 1024 30425173 /home/mysql/mysql/servers.MYI mysqld 24349 mysql 19u REG 8,33 0 30425174 /home/mysql/mysql/servers.MYD mysqld 24349 mysql 20u REG 8,33 2048 30425182 /home/mysql/mysql/event.MYI mysqld 24349 mysql 21u REG 8,33 0 30425183 /home/mysql/mysql/event.MYD ...
看到的是,总共打开了8个表,每个表分别有2个MySQL数据库文件描述符,看来没错。
3. 再来看 status 结果
mysql>show global status like 'open_%'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | Open_files | 17 | | Open_streams | 0 | | Open_table_definitions | 15 | | Open_tables | 8 | | Opened_files | 52 | | Opened_tables | 15 | +------------------------+-------+
4. flush tables 后再看看
mysql>flush tables; mysql> show global status like 'open_%'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | Open_files | 1 | | Open_streams | 0 | | Open_table_definitions | 0 | | Open_tables | 0 | | Opened_files | 52 | | Opened_tables | 15 | +------------------------+-------+ lsof | grep /home/mysql ... mysqld 24349 mysql 5u unix 0x000001041e8de040 4244009 /home/mysql/mysql.sock mysqld 24349 mysql 22u unix 0x00000102378ff980 4244128 /home/mysql/mysql.sock ...
看到的是,flush 之后,所有的文件描述符都释放了。
通过测试可以得知,另一个打开的文件描述符是 slow query log所用。
如果是有大量的 MyISAM 表,那么就需要特别注意打开文件数是否会超出限制了。
上面说了这么多内容,是关于对MySQL数据库如何计算打开文件数的介绍,不知道各位对MySQL的认识是不是更上一层楼了,时时关注ITjs,学习最新Mysql技术。
扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...
解决方法: 其实处理这些使用流氓软件,需要将相关的.exe文件删除,使它不能再运行,或者直接清除这个服务本身,使计算机重启的时候,它不会再启动。比如Hijackthis扫描,在扫描日志中,一般会把非Windows系统的服务以023的方式列出来,如下面这段: O23 - ...
Windows 7系统可以对每个文件夹进行个性化视图设置,可以根据自己的个人喜好和实际需要更改文件或文件夹图标的大小,或者让文件或文件夹以列表、平铺等方式显示。但是,假如你对N个文件夹视图进行了风格各异的个性设置,现在又想让所有文件夹都使用同一种视图怎么办呢 手工一个一个修改,你OUT了,非累得手抽...
1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...
下面小编以Windows 7 64位为例,介绍下密码是如何设置永不过期的。 1、在桌面上打开“开始”菜单,或者点击“Win+R”快捷键将“运行”对话框打开。 2、运行对话框打开后,在里面中输入“lusrmgr.msc”字符命令,就可以打开“本地用户和组程序”。...
使用Windows 7的朋友都知道,任务栏上的快捷方式图标都是靠近开始菜单按钮,从左像右排列,不过也有一些用户喜欢左右对称,想要把那些快捷方式居中显示,看起来这个任务好像无从下手,其实一点也不难,只要通过下面方法就能轻松搞定。 1、首先在电脑磁盘中任何一个地方新建一个文件夹。 2、右击任务栏-&...