佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > MySql優(yōu)化之InnoDB,4GB內(nèi)存,多查詢的my.ini中文配置方案詳解

MySql優(yōu)化之InnoDB,4GB內(nèi)存,多查詢的my.ini中文配置方案詳解

熱門標(biāo)簽:AI電銷 網(wǎng)站排名優(yōu)化 呼叫中心市場(chǎng)需求 服務(wù)外包 地方門戶網(wǎng)站 百度競(jìng)價(jià)排名 Linux服務(wù)器 鐵路電話系統(tǒng)

本文是一個(gè)針對(duì) 4G 內(nèi)存系統(tǒng)(主要運(yùn)行只有 InnoDB 表的 MySQL 并使用幾個(gè)連接數(shù)執(zhí)行復(fù)雜的查詢)的 MySQL 配置文件方案

#開(kāi)始配置信息
#描述:4GB 內(nèi)存、只有 InnoDB、ACID、幾個(gè)連接數(shù)、繁重的查詢
#類型:系統(tǒng)
#結(jié)束配置信息

# 你可以復(fù)制該文件到 /etc/my.cnf 以設(shè)置全局的選項(xiàng),復(fù)制到 mysql-data-dir/my.cnf 以設(shè)置服務(wù)器特有的選項(xiàng)(在本安裝中該目錄是 C:mysqldata ),復(fù)制到 ~/.my.cnf 以設(shè)置用戶特有的選項(xiàng)。
#
# 在該文件中,你可以使用一個(gè)程序所支持的全部永久選項(xiàng)。
# 如果你想了解哪些選項(xiàng)是程序支持的,在運(yùn)行程序時(shí)使用“--help”選項(xiàng)。
#
# 更多有關(guān)個(gè)別選項(xiàng)的詳細(xì)信息也可以在手冊(cè)中找到。

# 下面的選項(xiàng)將被 MySQL 客戶端應(yīng)用程序所讀取。
# 注意,只有 MySQL 標(biāo)準(zhǔn)的客戶端應(yīng)用程序是被保證能讀取到該章節(jié)的。
# 如果你希望你自己的 MySQL 客戶端程序能夠承兌這些值,你需要在 MySQL 客戶端庫(kù)初始化中作為一個(gè)選項(xiàng)來(lái)指定它。
#
[client]
#password = [your_password]
port = 3306
socket = /tmp/mysql.sock

# *** 應(yīng)用程序特定的選項(xiàng)在下面 ***

# MySQL 服務(wù)器。
[mysqld]

# 通用配置選項(xiàng)
port = 3306
socket = /tmp/mysql.sock

# back_log 是指保持在操作系統(tǒng)監(jiān)聽(tīng)隊(duì)列中的連接數(shù)量,即在 MySQL 連接管理器線程處理它們之前的連接數(shù)量。
# 如果你有一個(gè)非常高的連接率并見(jiàn)到過(guò)“拒絕連接”的錯(cuò)誤,你可能需要提高該值。
# 在你的系統(tǒng)文檔中檢查該參數(shù)的最大值。
# 試圖將 back_log 設(shè)置得高于你操作系統(tǒng)的限制將不會(huì)起到任何作用。
back_log = 50

# 根本不用監(jiān)聽(tīng)一個(gè) TCP/IP 端口。
# 如果運(yùn)行在相同主機(jī)上的所有進(jìn)程都需要連接到 mysqld,這可能是一個(gè)安全增強(qiáng)。
# 所有與 mysqld 的互動(dòng)都必須通過(guò) Unix sockets(套接字)或命名管道進(jìn)行。
# 注意,在 Windows 上使用該選項(xiàng)但卻不啟用命名管道(通過(guò)“enable-named-pipe”選項(xiàng))將使得 mysqld 變得無(wú)用。
#
#skip-networking

# MySQL 允許的并發(fā)會(huì)話的最大數(shù)量。
# 其中的一個(gè)連接將被保留給擁有 SUPER 特權(quán)的用戶,即使已經(jīng)到達(dá)了連接限制,仍可以允許管理者登錄。
max_connections = 100

# 每個(gè)主機(jī)允許的最大錯(cuò)誤數(shù)量。
# 如果已到達(dá)該限制,主機(jī)將阻止對(duì) MySQL 服務(wù)器的連接,直到運(yùn)行“FLUSH HOSTS”或者服務(wù)器被重啟。
# 在連接階段的無(wú)效密碼和其它錯(cuò)誤將導(dǎo)致該值被提高。
# 請(qǐng)看全局計(jì)數(shù)器的“Aborted_connects”狀態(tài)變量。
max_connect_errors = 10

# 所有線程打開(kāi)表的數(shù)量。
# 提高該值將提高 mysqld 需要的文件描述符的數(shù)量。
# 因此,你必須確定要設(shè)置的打開(kāi)文件數(shù)量,在“mysqld 安全”章節(jié)的“open-file-limit”變量中,允許到至少為 4096。
table_open_cache = 2048

# 啟用外部文件級(jí)鎖定。
# 啟用文件鎖定將有一個(gè)性能上的負(fù)面影響,因此,只有在如果你有多個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在相同的文件上(注意,有些限制仍舊被應(yīng)用)或者如果你使用其它軟件依靠在文件級(jí)上鎖定 MyISAM 表時(shí),才使用。
#external-locking

# 服務(wù)器可以處理的一個(gè)查詢包的最大容量,以及服務(wù)器可以處理的最大查詢大?。ó?dāng)工作在大型 BLOB 字段時(shí)很重要)。
# 動(dòng)態(tài)擴(kuò)大,對(duì)于每一個(gè)連接。
max_allowed_packet = 16M

# 在一個(gè)事務(wù)中能夠?yàn)槎M(jìn)制日志 SQL 語(yǔ)句保持的緩存大小。
# 如果你經(jīng)常使用大的、多語(yǔ)句的事務(wù),你可以提高該值以獲得更好的性能。
# 來(lái)自事務(wù)的所有語(yǔ)句被緩沖到二進(jìn)制日志緩存,并在 COMMIT 之后立即被寫入到二進(jìn)制日志中。
# 如果事務(wù)大于該值,磁盤上的臨時(shí)文件將被替代使用。
# 該緩沖在事務(wù)中第一個(gè)更新語(yǔ)句時(shí)分配給每個(gè)連接。
binlog_cache_size = 1M

# 一個(gè)單一的 HEAP(在內(nèi)存中)表的最大允許大小。
# 該選項(xiàng)對(duì)偶然創(chuàng)建的一個(gè)非常大的 HEAP 表起保護(hù)作用,否則它將會(huì)使用完所有的內(nèi)存資源。
max_heap_table_size = 64M

# 排序緩沖被用來(lái)執(zhí)行一些 ORDER BY 和 GROUP BY 查詢的排序。
# 如果已排序的數(shù)據(jù)沒(méi)有進(jìn)入到排序緩沖,一個(gè)基于磁盤的合并排序?qū)⒈惶娲褂?- 請(qǐng)看“Sort_merge_passes”狀態(tài)變量。
# 如果排序是需要的,將分配給每個(gè)線程。
sort_buffer_size = 8M

# 該緩沖被用來(lái)優(yōu)化 FULL JOIN(沒(méi)有索引的 JOIN)。
# 無(wú)論如何,該 JOIN 在大多數(shù)情況下對(duì)性能是非常壞的,但是設(shè)置該變量為一個(gè)大值將減少對(duì)性能的影響。
# 請(qǐng)看針對(duì)一定數(shù)量的 FULL JOIN 的“Select_full_join”狀態(tài)變量。
# 如果 FULL JOIN 被發(fā)現(xiàn),將分配給每個(gè)線程。
join_buffer_size = 8M

# 我們保持在一個(gè)緩存中的可重用的線程有好多。
# 當(dāng)一個(gè)客戶端斷開(kāi)連接時(shí),如果在這之前的線程沒(méi)有超過(guò) thread_cache_size,客戶端的線程將放在緩存中。
# 如果你有很多新的連接,這將大幅減少創(chuàng)建所需線程的數(shù)量。
# (如果你有一個(gè)很好的線程實(shí)現(xiàn),這通常不會(huì)給出一個(gè)顯著的性能改善。)
thread_cache_size = 8

# 這允許應(yīng)用程序給予線程系統(tǒng)一個(gè)針對(duì)運(yùn)行在相同時(shí)間的線程所需數(shù)量的提示。
# 該值只在支持 thread_concurrency() 函數(shù)調(diào)用的系統(tǒng)上有意義(例如 Sun Solaris)。
# 你應(yīng)該對(duì) thread_concurrency 嘗試 CPU 數(shù)量的 2/4/6/... 倍。
thread_concurrency = 8

# 查詢緩存被用來(lái)緩存 SELECT 結(jié)果并在稍后返回它們,不會(huì)再次實(shí)際執(zhí)行相同的查詢。
# 如果你有很多相同的查詢并且很少改變表的話,查詢緩存的啟用將導(dǎo)致顯著的速度改善。
# 請(qǐng)看“Qcache_lowmem_prunes”狀態(tài)變量,以檢查當(dāng)前值對(duì)于你的加載是否足夠高。
# 注意:如果你的表經(jīng)常改變,或者如果你的查詢每次是不同的原文,那么查詢緩存將導(dǎo)致變慢,替代性能的改善。
query_cache_size = 64M

# 只有緩存結(jié)果集是小于該限制的。
# 這可以保護(hù)一個(gè)非常大結(jié)果集的查詢緩存覆蓋所有其它查詢結(jié)果。
query_cache_limit = 2M

# 編制到全文檢索索引的最小單詞長(zhǎng)度。
# 如果你需要檢索更短的單詞,你可能希望減小它。
# 注意,在你修改了該值以后,你需要重建你的 FULLINDEX 索引。
ft_min_word_len = 4

# 如果你的系統(tǒng)支持 memlock() 函數(shù)調(diào)用,你可能想要啟用該選項(xiàng)(運(yùn)行 MySQL 以保持它鎖定到內(nèi)存,并在出現(xiàn)高內(nèi)存壓力時(shí)避免潛在的交換輸出)。
# 這對(duì)性能是很有益的。
#memlock

# 如果在 CREATE TABLE 語(yǔ)句期間沒(méi)有指定不同的,當(dāng)創(chuàng)建一個(gè)新表時(shí)所使用的默認(rèn)表類型。
default-storage-engine = MYISAM

# 使用的線程堆棧大小。
# 該內(nèi)存量總是在連接時(shí)間被保留的。
# MySQL 自己通常需要不超過(guò) 64K 的內(nèi)存,然而如果你使用的是你自己的堆棧 UDF 函數(shù)或者你的系統(tǒng)針對(duì)某些操作需要更多堆棧,你可能需要設(shè)置該值為一個(gè)更高的值。
thread_stack = 192K

# 設(shè)置默認(rèn)的事務(wù)隔離等級(jí)。
# 可用的級(jí)別有:READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ、SERIALIZABLE。
transaction_isolation = REPEATABLE-READ

# 內(nèi)部(內(nèi)存中的)臨時(shí)表的最大容量。
# 如果一個(gè)表的增長(zhǎng)超過(guò)該值,它將自動(dòng)地轉(zhuǎn)換到基于磁盤的表。
# 該限制是針對(duì)一個(gè)單一的表,但可以有很多這樣的表。
tmp_table_size = 64M

# 啟用二進(jìn)制日志。
# 這在一個(gè)復(fù)制配置中,對(duì)于充當(dāng) MASTER 的是必要的。
# 如果你需要有能力及時(shí)從你最后的備份點(diǎn)中進(jìn)行恢復(fù),你也需要二進(jìn)制日志。
log-bin = mysql-bin

# 推薦的二進(jìn)制日志格式 - mixed。
binlog_format = mixed

# 如果你正在使用連鎖從服務(wù)器(A-〉B-〉C)進(jìn)行復(fù)制,你需要在服務(wù)器 B 上啟用該選項(xiàng)。
# 它允許通過(guò)從服務(wù)器線程將日志記錄到從服務(wù)器的二進(jìn)制日志中來(lái)實(shí)現(xiàn)日志的更新。
#log_slave_updates

# 啟用完整的查詢?nèi)罩尽7?wù)器接收到的每一個(gè)查詢(甚至是錯(cuò)誤的語(yǔ)法)都將被記錄。
# 這對(duì)于調(diào)試是很有用的,它通常在產(chǎn)品使用時(shí)被禁用。
#log

# 打印警告到錯(cuò)誤日志文件。
# 如果你有任何 MySQL 的問(wèn)題,你應(yīng)該啟用警告日志并檢查錯(cuò)誤日志中可能的解釋。
#log_warnings

# 記錄慢查詢。
# 慢查詢是指消耗時(shí)間超過(guò)“l(fā)ong_query_time”中定義的總時(shí)間的查詢,或者如果 log_short_format 沒(méi)有啟用,不使用索引的查詢。
# 如果你頻繁地添加新查詢到系統(tǒng)中,打開(kāi)這個(gè)是一個(gè)比較好的注意。
slow_query_log

# 所有消耗時(shí)間超過(guò)該總時(shí)間的查詢都將被視為是緩慢的。
# 不要在這里使用“1”值,因?yàn)檫@會(huì)導(dǎo)致甚至非??斓牟樵兌紩?huì)被不時(shí)地被記錄(MySQL 當(dāng)前的度量時(shí)間只精確到秒)。
long_query_time = 2

# 被 MySQL 用來(lái)存儲(chǔ)臨時(shí)文件的目錄。
# 例如,它被用來(lái)執(zhí)行基于磁盤的大的排序,以及內(nèi)部和顯式的臨時(shí)表。
# 如果你不會(huì)創(chuàng)建一個(gè)非常大的臨時(shí)文件,將它放在一個(gè) swapfs/tmpfs 文件系統(tǒng)中是有好處的。
# 另外,你可以把它放在一個(gè)專用的磁盤上。
# 你可以指定以“;”分隔的多個(gè)路徑 - 它們將在稍后被用在一個(gè)循環(huán)方式中。
#tmpdir = /tmp

# *** 與復(fù)制有關(guān)的設(shè)置

# 1 到 2^32-1 之間的唯一服務(wù)器標(biāo)識(shí)號(hào)。
# 該值對(duì)于主服務(wù)器和從服務(wù)器都是必須的。
# 如果“master-host”沒(méi)有設(shè)置則默認(rèn)為 1,但若是忽略,MySQL 將不會(huì)作為一個(gè)主服務(wù)器的功能。
server-id = 1

# 復(fù)制從服務(wù)器(注釋掉主服務(wù)器章節(jié)以便使用這個(gè))。
#
# 要配置該主機(jī)為一個(gè)復(fù)制從服務(wù)器,你可以選擇以下兩種方法:
#
# 1)使用 CHANGE MASTER TO 命令(在我們的手冊(cè)中有完整的描述) - 其語(yǔ)法是:
#
# CHANGE MASTER TO MASTER_HOST = 〈host〉, MASTER_PORT = 〈port〉, MASTER_USER = 〈user〉, MASTER_PASSWORD = 〈password〉;
#
# 使用帶引號(hào)的字符串替換 〈host〉、〈user〉、〈password〉,并且 〈port〉 是主服務(wù)器的端口號(hào)(默認(rèn)為 3306)。
#
# 例子:
#
# CHANGE MASTER TO MASTER_HOST = '125.564.12.1', MASTER_PORT = 3306, MASTER_USER = 'joe', MASTER_PASSWORD = 'secret';
#
# 或者
#
# 2)設(shè)置下面的變量。然而,如果你選擇了該方法,請(qǐng)?jiān)诘谝粫r(shí)間內(nèi)啟動(dòng)復(fù)制(就算不成功,例如,如果你在 MASTER_PASSWORD 中未鍵入密碼,并且從服務(wù)器連接失?。?,從服務(wù)器將創(chuàng)建一個(gè) master.info 文件,稍后在該文件中對(duì)下面變量值的任何改變都將被忽略,并被 master.info 文件中的連接所覆蓋,除非你關(guān)閉從服務(wù)器、刪除 master.info 并重新啟動(dòng)從服務(wù)器。
# 基于這種因素,你可能想要離開(kāi)下面未接觸的行(已注釋的)并替代使用 CHANGE MASTER TO(請(qǐng)看上面)。
#
# 需要 2 到 2^32-1 之間的唯一 id(與主服務(wù)器不同)。
# 如果“master-host”已被設(shè)置,默認(rèn)設(shè)置為 2。
# 但若是忽略,將不會(huì)作為一個(gè)從服務(wù)器的功能。
#server-id = 2
#
# 針對(duì)該從服務(wù)器的復(fù)制主服務(wù)器 - 必須的。
#master-host = 〈hostname〉
#
# 用戶名,當(dāng)連接到主服務(wù)器時(shí),從服務(wù)器將用此來(lái)進(jìn)行認(rèn)證 - 必須的。
#master-user = 〈username〉
#
# 密碼,當(dāng)連接到主服務(wù)器時(shí),從服務(wù)器將用此來(lái)進(jìn)行認(rèn)證 - 必須的。
#master-password = 〈password〉
#
# 端口,主服務(wù)器正在監(jiān)聽(tīng)的。
# 可選的 - 默認(rèn)為 3306。
#master-port = 〈port〉

# 讓從服務(wù)器只讀。
# 只有擁有 SUPER 特權(quán)的用戶和復(fù)制從服務(wù)器線程能夠修改它的數(shù)據(jù)。
# 你可以使用這個(gè)來(lái)確保不會(huì)有應(yīng)用程序在無(wú)意中替代主服務(wù)器修改從服務(wù)器上的數(shù)據(jù)。
#read_only

#*** MyISAM 特有的選項(xiàng)

# 鍵緩沖區(qū)的大小,用來(lái)為 MyISAM 表緩存索引塊。
# 不要將它設(shè)置為超過(guò)你可用內(nèi)存的 30% 以上,因?yàn)椴僮飨到y(tǒng)也需要一些內(nèi)存來(lái)緩存行。
# 即使你不使用 MyISAM 表,你仍應(yīng)該將它設(shè)置為 8-64M,因?yàn)樗脖挥糜趦?nèi)部的臨時(shí)磁盤表。
key_buffer_size = 32M

# 用于進(jìn)行 MyISAM 表全表掃描的緩沖區(qū)大小。
# 如果全表掃描是需要的,將分配給每個(gè)線程。
read_buffer_size = 2M

# 當(dāng)在一個(gè)有序的排序中讀取行時(shí),可以通過(guò)該緩沖區(qū)來(lái)讀取行,以避免對(duì)磁盤的查找。
# 如果將該值設(shè)置為一個(gè)很高的值,你可以大幅度提高 ORDER BY 的性能。
# 當(dāng)需要時(shí),分配給每個(gè)線程。
read_rnd_buffer_size = 16M

# MyISAM 使用特殊的類似于樹(shù)的緩存來(lái)讓大批量插入(亦即 INSERT ... SELECT、INSERT ... VALUES(...) 和 LOAD DATA INFILE)操作變得更快。
# 該變量限制每個(gè)線程的緩存樹(shù)的字節(jié)大小。
# 將它設(shè)置為 0 將禁用該優(yōu)化。
# 為了優(yōu)化性能,不要將它設(shè)置得比“key_buffer_size”大。
# 當(dāng)檢測(cè)到大量的插入時(shí),該緩沖區(qū)被分配。
bulk_insert_buffer_size = 64M

# 當(dāng) MySQL 需要通過(guò) REPAIR、OPTIMIZE、ALTER 表語(yǔ)句重建索引,以及 LOAD DATA INFILE 到一個(gè)空表時(shí),該緩沖區(qū)被分配。
# 它是給每個(gè)線程分配的,因此小心比較大的設(shè)置。
myisam_sort_buffer_size = 128M

# 當(dāng)重建索引(在 REPAIR、ALTER TABLE 或 LOAD DATA INFILE 期間)時(shí),MySQL 允許使用的臨時(shí)文件的最大大小。
# 如果“file-size”比這個(gè)值大,索引將通過(guò)鍵緩存(更慢一些)創(chuàng)建。
myisam_max_sort_file_size = 10G

# 如果一個(gè)表有超過(guò)一個(gè)的索引,MyISAM 能夠在排序時(shí)并行地使用超過(guò)一個(gè)的線程來(lái)修復(fù)它們。
# 如果你有多個(gè) CPU 和足夠的內(nèi)存,這是很有意義的。
myisam_repair_threads = 1

# 自動(dòng)地檢查和修復(fù)沒(méi)有正確關(guān)閉的 MyISAM 表。
myisam_recover

# *** INNODB 特定的選項(xiàng) ***

# 如果你有一個(gè)支持 InnoDB 啟用的 MySQL 服務(wù)器,而你卻并不計(jì)劃使用它,請(qǐng)使用該選項(xiàng)。
# 這可以保存一些內(nèi)存和磁盤空間,并提高速度。
#skip-innodb

# 附加的內(nèi)存池,InnoDB 用來(lái)存儲(chǔ)元數(shù)據(jù)信息。
# 如果 InnoDB 因該目的而需要更多的內(nèi)存,它將開(kāi)始從操作系統(tǒng)來(lái)分配它。
# 由于這在大多數(shù)最近的操作系統(tǒng)上是足夠快的,你通常不需要改變這個(gè)值。
# SHOW INNODB STATUS 將顯示當(dāng)前使用總量。
innodb_additional_mem_pool_size = 16M

# InnoDB,不像 MyISAM,使用一個(gè)緩沖池來(lái)緩存索引和行數(shù)據(jù)。
# 你將該值設(shè)得越大,在表中訪問(wèn)需要的數(shù)據(jù)時(shí),磁盤 I/O 就越少。
# 在一個(gè)專用的數(shù)據(jù)庫(kù)服務(wù)器上,你可以設(shè)置該參數(shù)到機(jī)器物理內(nèi)存大小的 80%。
# 不要把它設(shè)置得太大,因?yàn)槲锢韮?nèi)存的競(jìng)爭(zhēng)可能導(dǎo)致操作系統(tǒng)中的分頁(yè)。
# 注意,在 32 位的系統(tǒng)上,你可能在每個(gè)處理器的用戶級(jí)內(nèi)存上被限制在 2-3.5G,因此不要把它設(shè)置得太高。
innodb_buffer_pool_size = 2G

# InnoDB 存儲(chǔ)數(shù)據(jù)到一個(gè)或多個(gè)數(shù)據(jù)文件,形成表空間。
# 如果對(duì)于你對(duì)你的數(shù)據(jù)有一個(gè)單一的物理設(shè)備,那么一個(gè)單一的自動(dòng)擴(kuò)展文件就已經(jīng)足夠了。
# 在其它情況下,每設(shè)備一個(gè)單一文件是一個(gè)非常好的選擇。
# 你也可以配置 InnoDB 來(lái)使用原始的磁盤分區(qū) - 請(qǐng)參考手冊(cè)以獲取更多有關(guān)這個(gè)的信息。
innodb_data_file_path = ibdata1:10M:autoextend

# 如果你希望 InnoDB 表空間文件存儲(chǔ)到其它的地方,設(shè)置該選項(xiàng)。
# 默認(rèn)的是 MySQL 數(shù)據(jù)目錄。
#innodb_data_home_dir = 〈directory〉

# 異步 IO 操作所使用的 IO 線程數(shù)。
# 該值在 Unix 系統(tǒng)上被硬編碼為 4,但在 Windows 上,磁盤 I/O 可能受益于一個(gè)更大的數(shù)字。
innodb_file_io_threads = 4

# 如果你遇到 InnoDB 表空間腐爛,設(shè)置該值為一個(gè)非零值,將很容易地幫助你導(dǎo)出你的表。
# 以值 1 開(kāi)始并提高它,直到你能夠成功地導(dǎo)出表。
#innodb_force_recovery=1

# InnoDB 內(nèi)核里面允許的線程數(shù)量。
# 最佳的值高度取決于應(yīng)用程序、硬件以及操作系統(tǒng)的調(diào)度屬性。
# 一個(gè)太高的值可能導(dǎo)致線程顛簸。
innodb_thread_concurrency = 16

# 如果設(shè)置為 1,InnoDB 在每次提交(提供完整的 ACID 行為)時(shí)刷新事務(wù)日志到磁盤。
# 如果你想安全地進(jìn)行折中,并且你正在運(yùn)行小事務(wù),你可以為 0 或 2 來(lái)減少日志的磁盤 I/O。
# 值 0 表示日志只被寫入到日志文件,并且日志文件大約每秒一次刷新到磁盤。
# 值 2 表示日志在每次提交時(shí)被寫入到日志文件,但是日志文件只是大約每秒一次被刷新到磁盤。
innodb_flush_log_at_trx_commit = 1

# 加速 InnoDB 的關(guān)閉。
# 這在關(guān)閉時(shí)將禁用 InnoDB 做一個(gè)完整的清除和插入緩沖合并。
# 它可能會(huì)提高不少關(guān)閉的時(shí)間,但替代的是 InnoDB 將在下一次啟動(dòng)時(shí)來(lái)完成它。
#innodb_fast_shutdown

# InnoDB 緩沖日志數(shù)據(jù)所使用的緩沖區(qū)大小。
# 一旦它滿了,InnoDB 將刷新它到磁盤。
# 因?yàn)椴还茉趺此际敲棵胨⑿乱淮?,所以沒(méi)有必要讓它變得很大(甚至是很長(zhǎng)的事務(wù))。
innodb_log_buffer_size = 8M

# 一個(gè)日志組中每個(gè)日志文件的大小。
# 你可以設(shè)置日志文件的聯(lián)合大小為你的緩沖池大小的 25%-100%,以避免對(duì)日志文件不必要的緩沖池動(dòng)態(tài)刷新重寫。
# 然而,注意,一個(gè)更大的日志文件大小將增加恢復(fù)處理所需的時(shí)間。
innodb_log_file_size = 256M

# 日志組中文件的總數(shù)。
# 通常值為 2-3 就已足夠了。
innodb_log_files_in_group = 3

# InnoDB 日志文件的位置。
# 默認(rèn)為 MySQL 的數(shù)據(jù)目錄。
# 你可能希望指定它到一個(gè)專用的硬盤或一個(gè) RAID1 卷標(biāo)來(lái)改善性能。
#innodb_log_group_home_dir

# InnoDB 緩沖池中允許的臟頁(yè)面的最大百分比。
# 如果它到達(dá)了,InnoDB 將開(kāi)始積極地清理它們,以避免消耗完所有的干凈頁(yè)面。
# 這是一個(gè)軟限制,不保證能夠一直保持。
innodb_max_dirty_pages_pct = 90

# InnoDB 對(duì)日志使用的刷新方法。
# 表空間總是使用雙寫刷新邏輯。
# 默認(rèn)值為“fdatasync”,其它選項(xiàng)是“O_DSYNC”。
#innodb_flush_method = O_DSYNC

# 一個(gè) InnoDB 事務(wù)應(yīng)等待的在回滾之前被授權(quán)鎖定的時(shí)長(zhǎng)。
# InnoDB 在它自己的鎖定表中自動(dòng)地檢測(cè)事務(wù)死鎖,并回滾事務(wù)。
# 如果你在相同的事務(wù)中使用 LOCK TABLES 命令,或者其它比 InnoDB 更加事務(wù)安全的存儲(chǔ)引擎,那么稍后會(huì)出現(xiàn) InnoDB 不能提示的死鎖。
# 如果像這樣,超時(shí)對(duì)于解決問(wèn)題是很有用的。
innodb_lock_wait_timeout = 120

[mysqldump]
# 在寫入到文件之前,不要緩沖整個(gè)結(jié)果集。
# 導(dǎo)出非常大的表時(shí)是必須的。
quick

max_allowed_packet = 16M

[mysql]
no-auto-rehash

# 只允許 UPDATE 和 DELETE 使用鍵。
#safe-updates

[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
# 增加每次處理所允許打開(kāi)的文件數(shù)量。
# 警告:確保你已經(jīng)設(shè)置全局系統(tǒng)限制足夠高!
# 對(duì)于一個(gè)大數(shù)量的打開(kāi)表,高值是必須的。
open-files-limit = 8192

以上的參數(shù)設(shè)置大家可以根據(jù)自己實(shí)現(xiàn)情況參考一下

您可能感興趣的文章:
  • 簡(jiǎn)述MySQL InnoDB存儲(chǔ)引擎
  • MySQL 學(xué)習(xí)總結(jié) 之 初步了解 InnoDB 存儲(chǔ)引擎的架構(gòu)設(shè)計(jì)
  • MySQL學(xué)習(xí)(七):Innodb存儲(chǔ)引擎索引的實(shí)現(xiàn)原理詳解
  • MySQL存儲(chǔ)引擎MyISAM與InnoDB區(qū)別總結(jié)整理
  • MySQL InnoDB存儲(chǔ)引擎的深入探秘
  • 詳解分析MySQL8.0的內(nèi)存消耗
  • MySQL 內(nèi)存表和臨時(shí)表的用法詳解
  • MySQL8.0內(nèi)存相關(guān)參數(shù)總結(jié)
  • MySql減少內(nèi)存占用的方法詳解
  • 詳解MySQL InnoDB存儲(chǔ)引擎的內(nèi)存管理

標(biāo)簽:仙桃 湖南 湘潭 黃山 衡水 蘭州 崇左 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySql優(yōu)化之InnoDB,4GB內(nèi)存,多查詢的my.ini中文配置方案詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    伊吾县| 海林市| 凭祥市| 社会| 新乡县| 苍南县| 万全县| 阳曲县| 滨海县| 美姑县| 鄂伦春自治旗| 遵化市| 武穴市| 丁青县| 新化县| 恩平市| 内江市| 沙坪坝区| 安岳县| 黑河市| 专栏| 保定市| 正定县| 葫芦岛市| 巴彦县| 晋州市| 四会市| 铁岭市| 庆元县| 合江县| 通河县| 元阳县| 保康县| 怀安县| 电白县| 扎赉特旗| 本溪| 三门峡市| 吴堡县| 开原市| 隆回县|