新聞中心
以下的文章主要描述的是MySQL數(shù)據(jù)庫(kù)是如何正確計(jì)算打開(kāi)文件數(shù)的實(shí)際操作流程,大家都知道每打開(kāi)一個(gè)MyISAM表,就需要對(duì)其使用2個(gè)文件描述符,所以我們就來(lái)驗(yàn)證一下MySQL數(shù)據(jù)庫(kù)如何計(jì)算打開(kāi)文件數(shù)。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、石泉網(wǎng)站維護(hù)、網(wǎng)站推廣。
試驗(yàn)
從手冊(cè)的"6.4.8. How MySQL Opens and Closes Tables"可以了解到,每打開(kāi)一個(gè)MyISAM表,就需要使用2個(gè)文件描述符,咱們來(lái)驗(yàn)證一下。
1. 重啟mysqld
- /etc/init.d/mysql restart
2. 看看打開(kāi)了幾個(gè)文件
- 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
- ...
可以看到,總共打開(kāi)了8個(gè)表,每個(gè)表分別有2個(gè)MySQL數(shù)據(jù)庫(kù)文件描述符,看來(lái)沒(méi)錯(cuò)。
3. 再來(lái)看 status 結(jié)果
- 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 之后,所有的文件描述符都釋放了。
通過(guò)測(cè)試可以得知,另一個(gè)打開(kāi)的文件描述符是 slow query log所用。
如果是有大量的 MyISAM 表,那么就需要特別注意打開(kāi)文件數(shù)是否會(huì)超出限制了。
以上的相關(guān)內(nèi)容就是對(duì)MySQL數(shù)據(jù)庫(kù)如何計(jì)算打開(kāi)文件數(shù)的介紹,望你能有所收獲。
【編輯推薦】
- MySQL 事件調(diào)度器的操作流程
- MySQL鎖表在那些情況中是不利的?
- 如何實(shí)現(xiàn)MySQL鎖的優(yōu)化
- MySQL數(shù)據(jù)庫(kù)中的中文亂碼如何解決?
- MySQL heap使用大匯總
文章標(biāo)題:MySQL數(shù)據(jù)庫(kù)打開(kāi)文件數(shù)的實(shí)際操作流程
本文網(wǎng)址:http://m.fisionsoft.com.cn/article/djidedo.html


咨詢
建站咨詢
