比較重要的引數

2022-05-26 17:18:10 字數 2514 閱讀 3000

back_log :back_log值可以指出在mysql暫時停止回答新請求之前的短時間內多少個請求可以被存在堆疊中。也就是說,如果mysql的連線資料達到max_connections時,新來的請求將會被存在堆疊中,以等待某一連線釋放資源,該堆疊的數量即back_log,如果等待連線的數量超過back_log,將不被授予連線資源。可以從預設的50公升至500。

sync_binlog :

sync_binlog 的預設值是0,像作業系統刷其他檔案的機制一樣,mysql不會同步到磁碟中去而是依賴作業系統來重新整理binary log。

當sync_binlog =n (n>0) ,mysql 在每寫 n次 二進位制日誌binary log時,會使用fdatasync()函式將它的寫二進位制日誌binary log同步到磁碟中去。

innodb_flush_log_at_trx_commit :

0:log buffer將每秒一次地寫入log file中,並且log file的flush(刷到磁碟)操作同時進行。該模式下在事務提交的時候,不會主動觸發寫入磁碟的操作。

1:每次事務提交時mysql都會把log buffer的資料寫入log file,並且flush(刷到磁碟)中去,該模式為系統預設。

2:每次事務提交時mysql都會把log buffer的資料寫入log file,但是flush(刷到磁碟)操作並不會同時進行。該模式下,mysql會每秒執行一次 flush(刷到磁碟)操作。

wait_timeout :資料庫連線閒置時間,閒置連線會占用記憶體資源。可以從預設的8小時減到半小時。

max_user_connection :最大連線數,預設為0無上限,最好設乙個合理上限。

thread_concurrency :併發執行緒數,設為cpu核數的兩倍。

skip_name_resolve :禁止對外部連線進行dns解析,消除dns解析時間,但需要所有遠端主機用ip訪問。

key_buffer_size :索引塊的快取大小,增加會提公升索引處理速度,對myisam表效能影響最大。對於記憶體4g左右,可設為256m或384m,通過查詢show status like 'key_read%',保證key_reads / key_read_requests在0.1%以下最好。

innodb_buffer_pool_size :快取資料塊和索引塊,對innodb表效能影響最大。通過查詢show status like 'innodb_buffer_pool_read%',保證 (innodb_buffer_pool_read_requests – innodb_buffer_pool_reads) / innodb_buffer_pool_read_requests越高越好。

innodb_additional_mem_pool_size :innodb儲存引擎用來存放資料字典資訊以及一些內部資料結構的記憶體空間大小,當資料庫物件非常多的時候,適當調整該引數的大小以確保所有資料都能存放在記憶體中提高訪問效率,當過小的時候,mysql會記錄warning資訊到資料庫的錯誤日誌中,這時就需要該調整這個引數大小。

innodb_log_buffer_size :innodb儲存引擎的事務日誌所使用的緩衝區,一般來說不建議超過32mb。 

query_cache_size :快取mysql中的resultset,也就是一條sql語句執行的結果集,所以僅僅只能針對select語句。當某個表的資料有任何任何變化,都會導致所有引用了該錶的select語句在query cache中的快取資料失效。所以,當我們資料變化非常頻繁的情況下,使用query cache可能得不償失。根據命中率(qcache_hits/(qcache_hits+qcache_inserts)*100))進行調整,一般不建議太大,256mb可能已經差不多了,大型的配置型靜態資料可適當調大。可以通過命令show status like 'qcache_%'檢視目前系統query catch使用大小。

read_buffer_size :mysql讀入緩衝區大小。對錶進行順序掃瞄的請求將分配乙個讀入緩衝區,mysql會為它分配一段記憶體緩衝區。如果對錶的順序掃瞄請求非常頻繁,可以通過增加該變數值以及記憶體緩衝區大小提高其效能。

sort_buffer_size :mysql執行排序使用的緩衝大小。如果想要增加order by的速度,首先看是否可以讓mysql使用索引而不是額外的排序階段。如果不能,可以嘗試增加sort_buffer_size變數的大小。

read_rnd_buffer_size :mysql的隨機讀緩衝區大小。當按任意順序讀取行時(例如按照排序順序),將分配乙個隨機讀快取區。進行排序查詢時,mysql會首先掃瞄一遍該緩衝,以避免磁碟搜尋,提高查詢速度,如果需要排序大量資料,可適當調高該值。但mysql會為每個客戶連線發放該緩衝空間,所以應盡量適當設定該值,以避免記憶體開銷過大。

record_buffer :每個進行乙個順序掃瞄的執行緒為其掃瞄的每張表分配這個大小的乙個緩衝區。如果你做很多順序掃瞄,可能想要增加該值。

thread_cache_size :儲存當前沒有與連線關聯但是準備為後面新的連線服務的執行緒,可以快速響應連線的執行緒請求而無需建立新的。

table_cache :類似於 thread_cache_size ,但用來快取表檔案,對innodb效果不大,主要用於myisam。

比較重要的演算法

下面是一些比較重要的演算法,原文羅列了32個,但我覺得有很多是數論裡的,和計算機的不相干,所以沒有選取。下面的這些,有的我們經常在用,有的基本不用。有的很常見,有的很偏。不過了解一下也是好事。也歡迎你留下你覺得有意義的演算法。注 本篇文章並非翻譯,其中的演算法描述大部份摘自wikipedia,因為維...

fastjson比較重要的幾點

第一種 在物件響應欄位前加註解,這樣生成的json也不包含該欄位。jsonfield serialize false private string name 第二種 在物件對應字段前面加transient,表示該欄位不用序列化,即在生成json的時候就不會包含該字段了。private transie...

比較重要的運算子

看似兩個很簡單的運算子,卻也真要掌握用好它也不容易,本文作為關於此類運算子的各方面的問題的彙總,希望對你我都有一些幫助。除法運算子 二元運算子,具有左結合性。參與運算的量均為整型時,結果為整型,捨去小數。如果運算量中有乙個為實型,結果為雙精度實型。例如 5 2 2,1 2 0 5 2.0 2.5 求...