欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL MyISAM 優(yōu)化設(shè)置點(diǎn)滴

 更新時(shí)間:2016年05月16日 23:05:45   投稿:mdxy-dxy  
MyISAM類型的表強(qiáng)調(diào)的是性能,其執(zhí)行數(shù)度比InnoDB類型更快, 只是不提供事務(wù)支持.大部分項(xiàng)目是讀多寫少的項(xiàng)目,而Myisam的讀性能是比innodb強(qiáng)不少的

最近在配置mysql服務(wù)器需要用到的一些設(shè)置,經(jīng)過(guò)測(cè)試發(fā)現(xiàn)比較不錯(cuò)的配置方案,亮點(diǎn)在最后啊

先說(shuō)一點(diǎn)問(wèn)題:
 
Mysql中的InnoDB和MyISAM是在使用MySQL中最常用的兩個(gè)表類型,各有優(yōu)缺點(diǎn).兩種類型最主要的差別就是 InnoDB 支持事務(wù)處理與外鍵和行級(jí)鎖.而MyISAM不支持.所以Myisam往往就容易被人認(rèn)為只適合在小項(xiàng)目中使用。但是從數(shù)據(jù)庫(kù)需求角度講,要求99.9%的穩(wěn)定性,方便的擴(kuò)展性和高可用性來(lái)說(shuō)的話,那MyISAM絕對(duì)應(yīng)該是首選。MyISAM類型的表強(qiáng)調(diào)的是性能,其執(zhí)行數(shù)度比InnoDB類型更快, 只是不提供事務(wù)支持.大部分項(xiàng)目是讀多寫少的項(xiàng)目,而Myisam的讀性能是比innodb強(qiáng)不少的.
 
優(yōu)化設(shè)置:

key_buffer_size – 這對(duì)MyISAM表來(lái)說(shuō)非常重要。如果只是使用MyISAM表,可以把它設(shè)置為可用內(nèi)存的 30-40%。但是注意,分多少內(nèi)存應(yīng)該是根據(jù)需求決 定,而不是不管什么機(jī)器,都砍掉一半內(nèi)存用作 key_buffer_size .合理的值取決于索引大小、數(shù)據(jù)量以及負(fù)載 — 記住,MyISAM表會(huì)使用操作系統(tǒng)的緩存來(lái)緩存數(shù)據(jù),因此需要留出部分內(nèi)存給它們,很多情況下數(shù)據(jù)比索引大多了??梢酝ㄟ^(guò)SHOW GLOBAL STATUS 時(shí)的 Key_blocks_unused來(lái)查看,只要還有剩余,就說(shuō)明 key_buffer_size 沒(méi)用滿。如果你很少使用MyISAM表,那么也保留低于 16-32MB 的 key_buffer_size 以適應(yīng)給予磁盤的臨時(shí)表索引所需。
 
query_cache — 如果你的應(yīng)用程序有大量讀,而且沒(méi)有應(yīng)用程序級(jí)別的緩存,那么這很有用。不要把它設(shè)置太大了,因?yàn)橄胍S護(hù)它也需要不少開(kāi)銷,這會(huì)導(dǎo)致MySQL變慢。通 常設(shè)置為 32-512Mb。設(shè)置完之后最好是跟蹤一段時(shí)間,查看是否運(yùn)行良好。在一定的負(fù)載壓力下,如果緩存命中率太低了,就啟用它。

sort_buffer_size –如果你只有一些簡(jiǎn)單的查詢,那么就無(wú)需增加它的值了,盡管你有 64GB 的內(nèi)存。搞不好也許會(huì)降低性能。
 
query_cache_size -查詢緩沖常被用來(lái)緩沖 SELECT 的結(jié)果并且在下一次同樣查詢的時(shí)候不再執(zhí)行直接返回結(jié)果.打開(kāi)查詢緩沖可以極大的提高服務(wù)器速度, 如果你有大量的相同的查詢并且很少修改表.查看 “Qcache_lowmem_prunes” 狀態(tài)變量來(lái)檢查是否當(dāng)前值對(duì)于你的負(fù)載來(lái)說(shuō)是否足夠高.注意: 在你表經(jīng)常變化的情況下或者如果你的查詢?cè)拿看味疾煌?查詢緩沖也許引起性能下降而不是性能提升.注意:設(shè)置query_cache_limit,只有小于此設(shè)定值的結(jié)果才會(huì)被緩沖, 此設(shè)置用來(lái)保護(hù)查詢緩沖,防止一個(gè)極大的結(jié)果集將其他所有的查詢結(jié)果都覆蓋.
 
bulk_insert_buffer_size -MyISAM 使用特殊的類似樹(shù)的cache來(lái)使得突發(fā)插入, (這些插入是,INSERT … SELECT, INSERT … VALUES (…), (…), …, 以及 LOAD DATA INFILE) 更快. 此變量限制每個(gè)進(jìn)程中緩沖樹(shù)的字節(jié)數(shù). 設(shè)置為 0 會(huì)關(guān)閉此優(yōu)化.為了最優(yōu)化不要將此值設(shè)置大于 “key_buffer_size”.當(dāng)突發(fā)插入被檢測(cè)到時(shí)此緩沖將被分配.
 
read_rnd_buffer_size -當(dāng)在排序之后,從一個(gè)已經(jīng)排序好的序列中讀取行時(shí),行數(shù)據(jù)將從這個(gè)緩沖中讀取來(lái)防止磁盤尋道.如果你增高此值,可以提高很多ORDER BY的性能.當(dāng)需要時(shí)由每個(gè)線程分配
 
thread_cache_size - 我們?cè)赾ache中保留多少線程用于重用,當(dāng)一個(gè)客戶端斷開(kāi)連接后,如果cache中的線程還少于thread_cache_size,則客戶端線程被放入cache中.這可以在你需要大量新連接的時(shí)候極大的減少線程創(chuàng)建的開(kāi)銷
 
附錄:適用于日IP 50-100w,PV 100-300w的站點(diǎn),針對(duì)Dell R710,雙至強(qiáng)E5620、16G內(nèi)存的硬件配置。CentOS 5.6 64位系統(tǒng),MySQL 5.5.x 穩(wěn)定版的部分?jǐn)?shù)據(jù)庫(kù)配置文件,供大家參考

復(fù)制代碼 代碼如下:

back_log = 300
max_connections = 3000
max_connect_errors = 30
table_cache = 4096
max_allowed_packet = 32M
#external-locking
#skip-networking
binlog_cache_size = 4M
max_heap_table_size = 128M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
thread_concurrency = 8
query_cache_size = 128M
ft_min_word_len = 8
#memlock
thread_stack = 512K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 128M
#log_slave_updates
#log
#log_warnings
log_slow_queries
long_query_time = 6
log_long_format
................

優(yōu)化配置:經(jīng)過(guò)腳本之家測(cè)試

1.服務(wù)器的運(yùn)行環(huán)境
 硬件服務(wù)器:Dell R710,雙至強(qiáng)E5620 CPU、16G內(nèi)存、6*500G硬盤
 操作系統(tǒng):CentOS5.5 X86_64 系統(tǒng)
Mysql版本:MySQL 5.5.32
適用于:日IP 100-200W ,日PV 200-500W 的站點(diǎn)
2.具體優(yōu)化配置如下

復(fù)制代碼 代碼如下:

[client]
port    = 3306
socket    = /tmp/mysql.sock
default-character-set = utf8 #設(shè)置客戶端的字符編碼
[mysqld]
# generic configuration options
port    = 3306
socket    = /tmp/mysql.sock
#*** char set ***
character-set-server = utf8 #設(shè)置服務(wù)器端的字符編碼
            
#*** network ***
back_log = 512
#skip-networking #默認(rèn)沒(méi)有開(kāi)啟
max_connections = 3000
max_connect_errors = 30
table_open_cache = 4096
#external-locking #默認(rèn)沒(méi)有開(kāi)啟
max_allowed_packet = 32M
max_heap_table_size = 128M
            
# *** global cache ***
read_buffer_size = 8M
read_rnd_buffer_size = 64M
sort_buffer_size = 16M
join_buffer_size = 16M
            
# *** thread ***
thread_cache_size = 16
thread_concurrency = 8
thread_stack = 512K
            
# *** query cache ***
query_cache_size = 128M
query_cache_limit = 4M
            
# *** index ***
ft_min_word_len = 8
            
#memlock #默認(rèn)沒(méi)有開(kāi)啟
default-storage-engine = INNODB
transaction_isolation = REPEATABLE-READ
            
# *** tmp table ***
tmp_table_size = 64M
            
# *** bin log ***
log-bin=mysql-bin
binlog_cache_size = 4M
binlog_format=mixed
#log_slave_updates #默認(rèn)沒(méi)有開(kāi)啟
#log #默認(rèn)沒(méi)有開(kāi)啟,此處是查詢?nèi)罩?,開(kāi)啟會(huì)影響服務(wù)器性能
log_warnings #開(kāi)啟警告日志
            
# *** slow query log ***
slow_query_log
long_query_time = 10
# *** Replication related settings
server-id = 1
#server-id = 2
#master-host = <hostname>
#master-user = <username>
#master-password = <password>
#master-port = <port>
#read_only
#*** MyISAM Specific options
key_buffer_size = 128M
bulk_insert_buffer_size = 256M
myisam_sort_buffer_size = 256M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
            
# *** INNODB Specific options ***
#skip-innodb #默認(rèn)沒(méi)有開(kāi)啟
innodb_additional_mem_pool_size = 64M
innodb_buffer_pool_size = 6G #注意在32位系統(tǒng)上你每個(gè)進(jìn)程可能被限制在 2-3.5G 用戶層面內(nèi)存限制, 所以不要設(shè)置的太高.
innodb_data_file_path = ibdata1:10M:autoextend
#innodb_data_home_dir = <directory>
innodb_write_io_threads = 8
innodb_read_io_threads = 8
#innodb_force_recovery=1
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
#說(shuō)明:innodb_flush_log_at_trx_commit = 2 如果是游戲服務(wù)器,建議此值設(shè)置為2;如果是對(duì)數(shù)據(jù)安全要求極高的應(yīng)用,建議設(shè)置為1;設(shè)置為0性能最高,但如果發(fā)生故障,數(shù)據(jù)可能會(huì)有丟失的危險(xiǎn)!默認(rèn)值1的意思是每一次事務(wù)提交或事務(wù)外的指令都需要把日志寫入(flush)硬盤,這是很費(fèi)時(shí)的。特別是使用電池供電緩存(Battery backed up cache)時(shí)。設(shè)成2對(duì)于很多運(yùn)用,特別是從MyISAM表轉(zhuǎn)過(guò)來(lái)的是可以的,它的意思是不寫入硬盤而是寫入系統(tǒng)緩存。日志仍然會(huì)每秒flush到硬盤,所以你一般不會(huì)丟失超過(guò)1-2秒的更新。設(shè)成0會(huì)更快一點(diǎn),但安全方面比較差,即使MySQL掛了也可能會(huì)丟失事務(wù)的數(shù)據(jù)。而值2只會(huì)在整個(gè)操作系統(tǒng)掛了時(shí)才可能丟數(shù)據(jù)。
#innodb_fast_shutdown
innodb_log_buffer_size = 16M
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
#innodb_log_group_home_dir
innodb_max_dirty_pages_pct = 90
#innodb_flush_method=O_DSYNC
innodb_lock_wait_timeout = 120
[mysqldump]
quick
max_allowed_packet = 32M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 2048M
sort_buffer_size = 2048M
read_buffer = 32M
write_buffer = 32M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 10240

好了,上面就是MySQL MyISAM 優(yōu)化設(shè)置的一些個(gè)人經(jīng)驗(yàn),感謝這些人的分享。希望大家以后多多支持腳本之家。

相關(guān)文章

  • Mysql存儲(chǔ)json格式的實(shí)現(xiàn)

    Mysql存儲(chǔ)json格式的實(shí)現(xiàn)

    本文主要介紹了Mysql存儲(chǔ)json格式的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Centos MySQL 5.7安裝、升級(jí)教程

    Centos MySQL 5.7安裝、升級(jí)教程

    這篇文章主要為大家詳細(xì)介紹了Centos MySQL 5.7安裝、升級(jí)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Windows下MySQL?8.0.29?安裝和刪除圖文教程

    Windows下MySQL?8.0.29?安裝和刪除圖文教程

    這篇文章主要為大家詳細(xì)介紹了Windows下MySQL?8.0.29?安裝和刪除圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • mysql同步復(fù)制搭建方法指南詳細(xì)步驟

    mysql同步復(fù)制搭建方法指南詳細(xì)步驟

    MySQL數(shù)據(jù)同步主要有三種方式: 1.利用MySQL自身的數(shù)據(jù)庫(kù)同步功能 2.利用MySQL數(shù)據(jù)庫(kù)的特性(數(shù)據(jù)庫(kù)存在固頂目錄,并且以文件形式存儲(chǔ)),進(jìn)行數(shù)據(jù)庫(kù)目錄同步以達(dá)到數(shù)據(jù)同步目的 3.利用專用的MySQL數(shù)據(jù)庫(kù)同步軟件
    2008-04-04
  • 詳解MySQL主從復(fù)制讀寫分離搭建

    詳解MySQL主從復(fù)制讀寫分離搭建

    這篇文章主要介紹了詳解MySQL主從復(fù)制讀寫分離搭建的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • MySql三種避免重復(fù)插入數(shù)據(jù)的方法

    MySql三種避免重復(fù)插入數(shù)據(jù)的方法

    這篇文章主要介紹了MySql三種避免重復(fù)插入數(shù)據(jù)的方法,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-09-09
  • MySQL?查詢?并集、交集、差集方式

    MySQL?查詢?并集、交集、差集方式

    這篇文章主要介紹了MySQL?查詢?并集、交集、差集方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • mysql error:#1062 Duplicate entry ‘***′ for key 1問(wèn)題解決方法

    mysql error:#1062 Duplicate entry ‘***′ for key 1問(wèn)題解決方法

    今天公司的一個(gè)網(wǎng)站突然提示MySQL Error Duplicate entry '96624' for key 1錯(cuò)誤,經(jīng)過(guò)分析這個(gè)問(wèn)題是由于mysql表中的一個(gè)id自增長(zhǎng)字段導(dǎo)致。
    2011-09-09
  • MySQL數(shù)據(jù)庫(kù)優(yōu)化技術(shù)之索引使用技巧總結(jié)

    MySQL數(shù)據(jù)庫(kù)優(yōu)化技術(shù)之索引使用技巧總結(jié)

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)優(yōu)化技術(shù)之索引使用方法,結(jié)合實(shí)例形式總結(jié)分析了MySQL表的優(yōu)化、索引設(shè)置、SQL優(yōu)化等相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2016-07-07
  • 帶你學(xué)習(xí)MySQL執(zhí)行計(jì)劃

    帶你學(xué)習(xí)MySQL執(zhí)行計(jì)劃

    前面文章,我們學(xué)習(xí)了 MySQL 慢日志相關(guān)內(nèi)容,當(dāng)我們篩選得到具體的慢 SQL 后,就要想辦法去優(yōu)化啦。優(yōu)化 SQL 的第一步應(yīng)該是讀懂 SQL 的執(zhí)行計(jì)劃。本篇文章,我們一起來(lái)學(xué)習(xí)下 MySQL explain 執(zhí)行計(jì)劃相關(guān)知識(shí)。
    2021-05-05

最新評(píng)論