加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL之SQL优化实战记录

发布时间:2018-11-14 06:10:44 所属栏目:编程 来源:小祝特烦恼
导读:配景 本次SQL优化是针对javaweb中的表格查询做的。 部门收集架构图 营业简朴声名 N个机台将营业数据发送至处事器,处事器措施将数据入库至MySQL数据库。处事器中的javaweb措施将数据展示到网页上供用户查察。 原数据库计划 windows单机主从疏散 已分表分库

以下是我的设置示例。加了skip-name-resolve,快了4-5s。其他设置自行断定

  1.  [client] 
  2. port=3306 
  3. [mysql] 
  4. no-beep 
  5. default-character-set=utf8 
  6. [mysqld] 
  7. server-id=2 
  8. relay-log-index=slave-relay-bin.index 
  9. relay-log=slave-relay-bin  
  10. slave-skip-errors=all #跳过全部错误 
  11. skip-name-resolve 
  12.  
  13. port=3306 
  14. datadir="D:/mysql-slave/data" 
  15. character-set-server=utf8 
  16. default-storage-engine=INNODB 
  17. sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 
  18.  
  19. log-output=FILE 
  20. general-log=0 
  21. general_log_file="WINDOWS-8E8V2OD.log" 
  22. slow-query-log=1 
  23. slow_query_log_file="WINDOWS-8E8V2OD-slow.log" 
  24. long_query_time=10 
  25.  
  26. # Binary Logging. 
  27. # log-bin 
  28.  
  29. # Error Logging. 
  30. log-error="WINDOWS-8E8V2OD.err" 
  31.  
  32.  
  33. # 整个数据库最大毗连(用户)数 
  34. max_connections=1000 
  35. # 每个客户端毗连最大的错误应承数目 
  36. max_connect_errors=100 
  37. # 表描写符缓存巨细,可镌汰文件打开/封锁次数 
  38. table_open_cache=2000 
  39. # 处事所能处理赏罚的哀求包的最大巨细以及处事所能处理赏罚的最大的哀求巨细(当与大的BLOB字段一路事变时相等须要)   
  40. # 每个毗连独立的巨细.巨细动态增进 
  41. max_allowed_packet=64M 
  42. # 在排序产生时由每个线程分派 
  43. sort_buffer_size=8M 
  44. # 当全连系产生时,在每个线程平分派  
  45. join_buffer_size=8M 
  46. # cache中保存几多线程用于重用 
  47. thread_cache_size=128 
  48. # 此应承应用措施给以线程系同一个提醒在统一时刻给以盼愿被运行的线程的数目. 
  49. thread_concurrency=64 
  50. # 查询缓存 
  51. query_cache_size=128M 
  52. # 只有小于此设定值的功效才会被缓冲   
  53. # 此配置用来掩护查询缓冲,防备一个极大的功效集将其他全部的查询功效都包围 
  54. query_cache_limit=2M 
  55. # InnoDB行使一个缓冲池来生涯索引和原始数据 
  56. # 这里你配置越大,你在存取表内里数据时所必要的磁盘I/O越少.   
  57. # 在一个独立行使的数据库处事器上,你可以配置这个变量随处事器物理内存巨细的80%   
  58. # 不要配置过大,不然,因为物理内存的竞争也许导致操纵体系的换页波动.   
  59. innodb_buffer_pool_size=1G 
  60. # 用来同步IO操纵的IO线程的数目 
  61. # 此值在Unix下被硬编码为4,可是在Windows磁盘I/O也许在一个大数值下示意的更好.  
  62. innodb_read_io_threads=16 
  63. innodb_write_io_threads=16 
  64. # 在InnoDb焦点内的应承线程数目.   
  65. # 最优值依靠于应用措施,硬件以及操纵体系的调治方法.   
  66. # 过高的值也许导致线程的互斥波动. 
  67. innodb_thread_concurrency=9 
  68.  
  69. # 0代表日记只约莫每秒写入日记文件而且日记文件革新到磁盘.   
  70. # 1 ,InnoDB会在每次提交后革新(fsync)事宜日记到磁盘上 
  71. # 2代表日记写入日记文件在每次提交后,可是日记文件只有约莫每秒才会革新到磁盘上 
  72. innodb_flush_log_at_trx_commit=2 
  73. # 用来缓冲日记数据的缓冲区的巨细.   
  74. innodb_log_buffer_size=16M 
  75. # 在日记组中每个日记文件的巨细.   
  76. innodb_log_file_size=48M 
  77. # 在日记组中的文件总数.  
  78. innodb_log_files_in_group=3 
  79. # 在被回滚前,一个InnoDB的事宜应该守候一个锁被核准多久.   
  80. # InnoDB在其拥有的锁表中自动检测事宜死锁而且回滚事宜.   
  81. # 假如你行使 LOCK TABLES 指令, 可能在同样事宜中行使除了InnoDB以外的其他事宜安详的存储引擎   
  82. # 那么一个死锁也许产生而InnoDB无法留意到.   
  83. # 这种环境下这个timeout值对付办理这种题目就很是有辅佐.  
  84. innodb_lock_wait_timeout=30 
  85. # 开启按时 
  86. event_scheduler=ON 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读