這篇文章將為大家詳細(xì)講解有關(guān)MySQL中存儲(chǔ)引擎InnoDB配置與使用的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
專(zhuān)注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)滎陽(yáng)免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
innodb 通過(guò)多版本并發(fā)控制(MVCC)來(lái)獲得高并發(fā)性,并且實(shí)現(xiàn)了SQL標(biāo)準(zhǔn)的4種隔離級(jí)別,默認(rèn)為REPEATABLE
級(jí)別。同時(shí),使用一種被稱(chēng)為next-key locking
的策略來(lái)避免幻讀(phantom
)現(xiàn)象的產(chǎn)生。除此之外,InnoDB存儲(chǔ)引擎還提供了插入緩沖(insert buffer
)、二次讀寫(xiě)(double write
)、自適應(yīng)哈希索引(adaptive hash index
)、預(yù)讀(read ahead
)等高性能和高可用的功能。
如何設(shè)置InnoDB為默認(rèn)引擎:
1. 查看mysql存儲(chǔ)引擎情況: mysql>show engines。 InnoDB | YES,說(shuō)明此mysql數(shù)據(jù)庫(kù)服務(wù)器支持InnoDB引擎。
2. 設(shè)置InnoDB為默認(rèn)引擎:在配置文件my.ini中的 [mysqld] 下面加入default-storage-engine=INNODB
3. 重啟mysql服務(wù)器
4. 登錄mysql數(shù)據(jù)庫(kù),mysql>show engines。如果出現(xiàn) InnoDB |DEFAULT,則表示設(shè)置InnoDB為默認(rèn)引擎成功。
InnoDB常用配置參數(shù):
#InnoDB存儲(chǔ)數(shù)據(jù)字典、內(nèi)部數(shù)據(jù)結(jié)構(gòu)的緩沖池,16MB 已經(jīng)足夠大了。 innodb_additional_mem_pool_size = 16M #InnoDB用于緩存數(shù)據(jù)、索引、鎖、插入緩沖、數(shù)據(jù)字典等 #如果是專(zhuān)用的DB服務(wù)器,且以InnoDB引擎為主的場(chǎng)景,通??稍O(shè)置物理內(nèi)存的50% #如果是非專(zhuān)用DB服務(wù)器,可以先嘗試設(shè)置成內(nèi)存的1/4,如果有問(wèn)題再調(diào)整 #默認(rèn)值是8M,非常坑X(jué),這也是導(dǎo)致很多人覺(jué)得InnoDB不如MyISAM好用的緣故 innodb_buffer_pool_size = 4G #InnoDB共享表空間初始化大小,默認(rèn)是 10MB,也非常坑X(jué),改成 1GB,并且自動(dòng)擴(kuò)展 innodb_data_file_path = ibdata1:1G:autoextend #如果不了解本選項(xiàng),建議設(shè)置為1,能較好保護(hù)數(shù)據(jù)可靠性,對(duì)性能有一定影響,但可控 innodb_flush_log_at_trx_commit = 1 #InnoDB的log buffer,通常設(shè)置為 64MB 就足夠了 innodb_log_buffer_size = 64M #InnoDB redo log大小,通常設(shè)置256MB 就足夠了 innodb_log_file_size = 256M #InnoDB redo log文件組,通常設(shè)置為 2 就足夠了 innodb_log_files_in_group = 2 #啟用InnoDB的獨(dú)立表空間模式,便于管理 innodb_file_per_table = 1 #啟用InnoDB的status file,便于管理員查看以及監(jiān)控等 innodb_status_file = 1 #設(shè)置事務(wù)隔離級(jí)別為 READ-COMMITED,提高事務(wù)效率,通常都滿(mǎn)足事務(wù)一致性要求 transaction_isolation = READ-COMMITTED 其他配置選項(xiàng)也需要注意: #設(shè)置最大并發(fā)連接數(shù),如果前端程序是PHP,可適當(dāng)加大,但不可過(guò)大 #如果前端程序采用連接池,可適當(dāng)調(diào)小,避免連接數(shù)過(guò)大 max_connections = 60 #最大連接錯(cuò)誤次數(shù),可適當(dāng)加大,防止頻繁連接錯(cuò)誤后,前端host被mysql拒絕掉 max_connect_errors = 100000 #設(shè)置慢查詢(xún)閥值,建議設(shè)置最小的 1 秒 long_query_time = 1 #設(shè)置臨時(shí)表最大值,這是每次連接都會(huì)分配,不宜設(shè)置過(guò)大 max_heap_table_size 和 tmp_table_size 要設(shè)置一樣大 max_heap_table_size = 96M tmp_table_size = 96M #每個(gè)連接都會(huì)分配的一些排序、連接等緩沖,一般設(shè)置為 2MB 就足夠了 sort_buffer_size = 2M join_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 2M #建議關(guān)閉query cache,有些時(shí)候?qū)π阅芊炊且环N損害 query_cache_size = 0 #如果是以InnoDB引擎為主的DB,專(zhuān)用于MyISAM引擎的 key_buffer_size 可以設(shè)置較小,8MB 已足夠 #如果是以MyISAM引擎為主,可設(shè)置較大,但不能超過(guò)4G #在這里,強(qiáng)烈建議不使用MyISAM引擎,默認(rèn)都是用InnoDB引擎 key_buffer_size = 8M #設(shè)置連接超時(shí)閥值,如果前端程序采用短連接,建議縮短這2個(gè)值 #如果前端程序采用長(zhǎng)連接,可直接注釋掉這兩個(gè)選項(xiàng),是用默認(rèn)配置(8小時(shí)) interactive_timeout = 120 wait_timeout = 120
幾個(gè)關(guān)于InnoDB引擎數(shù)據(jù)表設(shè)計(jì)相關(guān)的建議:
1. 所有InnoDB數(shù)據(jù)表都創(chuàng)建一個(gè)和業(yè)務(wù)無(wú)關(guān)的自增數(shù)字型作為主鍵,對(duì)保證性能很有幫助;
2. 杜絕使用text/blob,確實(shí)需要使用的,盡可能拆分出去成一個(gè)獨(dú)立的表;
3. 時(shí)間戳建議使用 TIMESTAMP 類(lèi)型存儲(chǔ);
4. IPV4 地址建議用 INT UNSIGNED 類(lèi)型存儲(chǔ);
5. 性別等非是即非的邏輯,建議采用 TINYINT 存儲(chǔ),而不是 CHAR(1);
6. 存儲(chǔ)較長(zhǎng)文本內(nèi)容時(shí),建議采用JSON/BSON格式存儲(chǔ);
InnoDB鎖類(lèi)型
InnoDB存儲(chǔ)引擎實(shí)現(xiàn)如下兩種標(biāo)準(zhǔn)的行級(jí)鎖
共享鎖(S Lock), 允許事務(wù)讀一行數(shù)據(jù)
排他鎖(X Lock),允許事務(wù)刪除或更新一行數(shù)據(jù)
共享鎖和排他鎖的兼容
注意:
(1)S鎖和X鎖都是行鎖,兼容是指對(duì)同一記錄(row)鎖的兼容性.
(2)事務(wù)T1已經(jīng)獲得行R的共享鎖,另一個(gè)事務(wù)T2可以立即獲得行R的共享鎖,這種情況稱(chēng)為鎖兼容。事務(wù)T3想獲得行R的排他鎖,則必須等待事務(wù)T1、T2釋放行R上的共享鎖,這種情況成為鎖的不兼容.
關(guān)于“MySQL中存儲(chǔ)引擎InnoDB配置與使用的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
當(dāng)前題目:MySQL中存儲(chǔ)引擎InnoDB配置與使用的示例分析
標(biāo)題網(wǎng)址:http://bm7419.com/article14/gosdde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計(jì)、全網(wǎng)營(yíng)銷(xiāo)推廣、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)