共計 2445 個字符,預計需要花費 7 分鐘才能閱讀完成。
本篇內容主要講解“mysql 有哪些參數”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“mysql 有哪些參數”吧!
max_connections: 表示數據庫的最大連接數。如果經常出現 1040 too many connections,那么就需要把這個參數適當調大。但是這個連接數不是越大越好,過多的連接會浪費內存的資源,影響 mysql 服務器的性能。
back_log:表示連接數到達 max_connections 之后,多少個請求可以被存在堆棧中。只有預計在一個短時間內有很多連接,才需要增加該參數的值。操作系統在這個隊列大小上也有限制,設定 back_log 高于操作系統的限制將是無效的。
default_character_set:這個參數影響了 character_set_client(mysql server 假定客戶端發送的查詢使用的字符集),character_set_connection(mysql server 接收客戶端發布的查詢請求后,將其轉化為 character_set_connection 指定的字符集)和 character_set_results(mysql server 把結果集和錯誤信息轉換為 character_set_results 指定的字符集,并發送給客戶端)。這個參數的修改影響客戶端和服務器的交互過程的字符集。
character_set_server:這個參數影響了 character_set_server(mysql server 默認字符集)和 character_set_database(數據庫默認字符集)這個參數。修改這個參數才會影響數據庫的字符集,因此如果想要對數據庫的字符集做出改變,可以修改 character_set_server,比如:這是一個 APP 項目,涉及到大量的 Emoji 表情符號,那么就需要使用 utf8mb4 這個 4 字節的字符集了,在這里,就需要將原來的 utf8 改為 utf8mb4。
event_cheduler:這個參數影響了定時任務,由于 msyql 的重啟會導致定時任務的失效,因此需要將這個參數改為 ON,使得定時任務不會失效。
max_allowed_packet: 這個參數設置過小就會出現 packet for query is too large 這個錯誤,需要適當的將此參數擴大,大小為 1024 的整數倍,但是不宜將此參數擴的太大,不然操作系統內存不夠,這個參數還是會失效的。
sort_buffer_size:表示排序緩存區的大小,這個值越大,進行排序的速度越快。
read_buffer_size:表示每個線程連續掃描時為掃描的每個表分配的緩沖區的大小。當線程從表中連續讀取記錄時需要用到這個緩沖區。
read_rnd_buffer_size:表示為每個線程保留的緩沖區的大小,與 read_buffer_size 相似。但主要用于存儲按特定順序讀取出來的記錄,如果頻繁進行多次連續掃描,可以增加該值。
innodb_flush_log_at_trx_commit:表示何時將重做日志緩沖區的數據寫入日志文件。該參數對于 innodb 引擎非常重要,有 3 個值,分別為 0、1 和 2。值為 0 時表示每隔 1 秒將重做日志緩沖區數據寫入日志文件;值為 1 時表示每次提交事務時將重做日志緩沖區數據寫入日志文件;值為 2 時表示每次提交事務時將數據寫入重做日志緩沖區,每隔 1 秒再將重做日志緩沖區數據寫入日志文件。該參數的默認值為 1,默認值值 1 安全性最高,但是每次事務提交或事務外的指令都需要把日志寫入 (flush) 硬盤,是比較費時的;0 值更快一點,但安全性比較差;2 之日志仍然會每秒戲而已磁盤,所以即使出現故障,一般也不會丟失超過 1~2 秒的數據。
interactive_timeout:表示服務器在關閉連接前等待的秒數。
wait_timeout:表示服務器在關閉一個連接時等待的秒數。
sort_buffer_size:表示每個需要進行排序的線程分配的緩沖區的大小。增加這個參數的值可以提高 order by 或 group by 的速度。
thead_cache_size:表示可以復用的線程的數量。如果有很多新的線程,為了提高性能可以增大該參數的值。
innodb_buffer_pool_size:表示 innodb 類型的表和索引的最大緩存。這值越大,查詢的速度就會越快,但是這個值太大會影響操作系統的性能。
query_cache_size:表示查詢緩沖區的大小。該參數需要和 query_cache_type 配合使用。當 query_cache_type= 0 時,所有的查詢都不使用查詢緩沖區,但是 query_cache_type= 0 并不會釋放所配置的緩沖區內存。當 query_cache_type= 1 時,所有的查詢都將使用查詢緩沖區,除非在查詢語句中指定 SQL_NO_CACHE, 如 select SQL_NO_CACHE * from table。當 query_cache_type= 2 時,只有在查詢語句中使用 SQL_CACHE 關鍵字,查詢才會使用查詢緩沖區。使用查詢緩沖區可以提高查詢速度,這種方式只適用于修改操作少且經常執行相同的查詢操作的情況。可以通過 flush query cache 來刷新緩沖區,清理查詢緩沖區中碎片。
table_cache:表示同時打開表的個數。這個值越大,能夠同時打開的表的個數越多。這個值不是越大越好,因為同時打開的表太多會影響操作系統的性能。
key_buffer_size:表示索引緩沖區的大小。索引緩沖區所有的線程共享。增加索引緩沖區可以得到更好的處理的索引(對所有讀和多重寫)。當然, 這個值也不是越大越好,它的大小取決于內存的大小,如果這個值太大,導致操作系統頻繁換頁,會降低系統性能。
到此,相信大家對“mysql 有哪些參數”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!