久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何解決mysql性能問題

138次閱讀
沒有評論

共計 2045 個字符,預計需要花費 6 分鐘才能閱讀完成。

這篇文章主要為大家展示了“如何解決 mysql 性能問題”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“如何解決 mysql 性能問題”這篇文章吧。

最近項目使用 mysql 遇到了性能問題。單表 400W 以上數據時,增,刪,改,查 的速度都明顯下降。
我們是做呼叫中心的,平均 1 秒鐘就要處理 20 個呼叫,所以 最最保守的計算 1 秒鐘也要對單表進行 20 次插入操作,還有更多的查詢操作,所以對性能要求略高。(有點兒跑題。。。。)
 
遇到了問題就要解決,優化!我們優化的步驟如下 (過程中遇到的困難略):
1. 優化索引,將所有 sql 語句,尤其是速度慢的都拿出來分析,一條一條的分析。(利用 EXPLAIN)要讓所有查詢都使用到索引。
2. 優化數據庫本身,對 my.cnf(my.ini)文件進行優化。但是個人覺得效果不是很明顯(請牛人指導。)
  my.cnf 文件配置如下。(4 核 cpu 4G 內存)這個 my.cnf 具體問題具體分析,配置起來也有很多事兒比較有講究的。
  所以需要逐步調試。(切忌不可大量修改后再重啟 mysql…. 有可能啟動失敗。)
 
Java 代碼  
[client] 
port=3306 
[mysql] 
default-character-set=utf8 
 
[mysqld] 
port=3306 
basedir= D:/Program Files/MySQL/MySQL Server 5.1/  
datadir= C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/  
default-character-set=utf8 
default-storage-engine=INNODB 
sql-mode= STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  
max_connections=1000 
query_cache_size=120M 
table_cache=1024M 
tmp_table_size=32M 
thread_cache_size=64 
myisam_max_sort_file_size=100G 
myisam_sort_buffer_size=64M 
key_buffer_size=512M 
 
max_allowed_packet = 32M 
max_heap_table_size = 32M 
table_open_cache = 512M 
thread_concurrency = 8 
innodb_lock_wait_timeout = 50 
bulk_insert_buffer_size = 64M 
key_cache_block_size=2048 
 
skip-external-locking 
skip-name-resolve 
 
read_buffer_size=8M 
read_rnd_buffer_size=8M 
 
sort_buffer_size=64M 
 
innodb_additional_mem_pool_size=20M 
innodb_flush_log_at_trx_commit=1 
innodb_log_buffer_size=8M 
innodb_buffer_pool_size=512M 
innodb_log_file_size=24M 
innodb_thread_concurrency=10 
 
3. 分表 分表是解決大數據量的最佳方案。
  我們的 my 單表 400 萬 以上數據的時候就不符合性能要求了 (我們對性能要求有點兒高)。但是我們一天產生的數據量就達到了單表 200 萬。。總不能 1 天就建立一套表出來吧??那 1,2 年以后 數據庫就會有 600 多套表(一套表有幾十張呢,也就是上萬張單表),看著都頭疼呀。。。。。
 
4. 從業務上解決,實現曲線救國。(這也是我們最后采用的方法,這個方法不一定適用其他業務)
  我們的業務是這樣,1 小時對流水數據結轉一次,生成統計數據。
  最后決定生成插入流水數據的時候分 2 套流水表插入(一套用來保存流水數據,另一套用來結轉統計數據。)
  為什么要分成 2 套呢?
  為了性能,用來保存流水數據的那套表就不去對它進行操作了。(起到備份數據之用。)
  用來結轉成統計數據的那套流水表,在結轉結束之后就會刪除掉以結轉的數據。
  這樣一來,結轉用的那套流水表的數據量就不會持續增長,也就保證了數據結轉的效率。
  希望對其他人 有點兒小啟示。。。。。。
  請大家不要笑我。。我的 mysql 是盜版的。。。沒有 mysql DBA 給我調優。更沒有人會給我訂制我們專用的 mysql
  只能這樣曲線救國的解決了。。。。

以上是“如何解決 mysql 性能問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-15發表,共計2045字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 大田县| 鹰潭市| 尚志市| 南皮县| 凤凰县| 刚察县| 尼勒克县| 桑日县| 巩义市| 栾城县| 兴义市| 二连浩特市| 马尔康县| 黑山县| 贵定县| 霍林郭勒市| 阜南县| 雷波县| 光泽县| 潜江市| 乌鲁木齐县| 高清| 荆州市| 广安市| 迭部县| 红桥区| 万荣县| 定兴县| 辽中县| 肥乡县| 伊宁县| 武定县| 江津市| 威海市| 永修县| 中西区| 桂平市| 临沭县| 西贡区| 抚州市| 旬阳县|