zoukankan      html  css  js  c++  java
  • mysql参数配置文件

    (1)参数配置文件中的内容以键值对形式存在。

    (2)如何查看键值对?show variables like '%name%';或者查看information_schema库下的global_variables视图;

    如何修改呢?

    1、innodb_buffer_pool_size=5G 

    2、客户端连接数据库的最大连接数:。通常,mysql的最大连接数默认是151, 最大可以达到16384。

             >>show variables like '%max_connections%';

          >>set global max_connections=200。
    >>my.ini文件中设置:max_connects = 200
    3、如果mysql服务器开启了二进制日志文件bin-log,那么我们必须为我们的function指定DETERMINISTIC, NO SQL 和 READS SQL DATA 。否则备份导入异常。
    解决方案一:
    >> show variables like 'log_bin_trust_function_creators';
    >> set gloable log_bin_trust_function_creators=true;
    在mysql的配置文件中添加
    log_bin_trust_function_creators=true
    解决方案二:
    在定义函数时,添加必要的说明。
    4、配置二进制日志文件:在mysql5.7中的my.ini文件中的mysqld项下添加如下三个选项。

           log_bin=ON
           log-bin=C:/ProgramData/MySQL/MySQL Server 5.7\Data\sdxsBinaryLog
           binlog-ignore-db = mysql,information_schema

    5、thread_cache_size=64,该参数一般与服务器物理内存有关,1G时设置成8,2G---16,3G--32,4G--64。默认值是10,显然在一般的服务器中就不合适。
    6、查询缓存配置:MYSQL的查询缓存用于缓存select查询结果,并在下次接收到同样的查询。请求时,不再执行实际查询处理而直接返回结果。有这样的查询缓存能提高查询的速度,
    使查询性能得到优化,前提条件是你有大量的相同或相似的查询,而很少改变表里的数据,否则没有必要使用此功能。可以通过Qcache_lowmem_prunes变量的值来检查是否当前的值满足你目前系统的负载。
    注意:如果你查询的表更新比较频繁,而且很少有相同的查询,最好不要使用查询缓存。当有大量的查询和大量的修改时,cache机制可能会造成性能下降。因为每次修改会导致系统去做cache失效操作。
    1)query_caceh_type=0/1/2。表示查询缓存是否开启,分别代表不开启,始终开启,按需开启。默认不开启。如果设置为1,将会缓存所有的结果,
    除非你的select语句使用SQL_NO_CACHE禁用了查询缓存;如果设置为2,则只缓存在select语句中通过SQL_CACHE指定需要缓存的查询。
    启用查询缓存,只要查询语句中添加了参数:sql_cache,且符合查询缓存的要求,客户端的查询语句和记录集,则可以缓存起来,共其他客户端使用。
       2)query_cache_size=64M。表示给缓存分配的最大内存空间。将query_cache_size设置为具体的大小,具体大小是多少取决于查询的实际情况,但最好设置为1024的倍数,参考值32M
    启用查询缓存,只要查询语句中添加了参数:sql_cache,且符合查询缓存的要求,客户端的查询语句和记录集,则可以缓存起来,共其他客户端使用;
    允许设置query_cache_size的值最小为40K,对于最大值则可以几乎认为无限制,实际生产环境的应用经验告诉我们,该值并不是越大, 查询缓存的命中率就越高,
    也不是对服务器负载下降贡献大,反而可能抵消其带来的好处,甚至增加服务器的负载,至于该如何设置,下面的章节讲述,推荐设置 为:64M
    3)query_cache_limit=1M。限制查询缓存区最大能缓存的查询记录集,可以避免一个大的查询记录集占去大量的内存区域。
    4)query_cache_min_res_unit=4K。设置查询缓存分配内存的最小单位,要适当地设置此参数,可以做到为减少内存块的申请和分配次数,但是设置过大可能导致内存碎片数值上升。默认值为4K,建议设置为1k~16K
    5)query_cache_wlock_invalidate=0。该参数主要涉及MyISAM引擎,若一个客户端对某表加了写锁,其他客户端发起的查询请求,且查询语句有对应的查询缓存记录,
    是否允许直接读取查询缓存的记录集信息,还是等待写锁的释放。默认设置为0,也即允许
    6)清空查询缓存的数据:FLUSH TABLES;RESET QUERY CACHE;
    7)碎片整理的操作语句:FLUSH QUERY CACHE;
    7、开启了bin-log后需要设置:log-bin-trust-function-creators=1。否则出现下面1418错误

    8、innodb_buffer_pool_size=12G。发现这个参数在高并发高I/O时正确的配置非常重要,可能带来很大的性能提升。
    innodb_buffer_pool_size参数表示缓冲池字节大小,InnoDB缓存表和索引数据的内存区域
    该值一般设置成总内存的70%到80%。用于缓存索引和数据的内存大小,
    这个当然是越多越好, 数据读写在内存中非常快, 减少了对磁盘的读写。
    最大值与你的CPU体系结构有关,在32位操作系统,最大值是 4294967295 (2^32-1) ,在64 位操作系统,最大值为18446744073709551615 (2^64-1)。
    在32位操作系统中,CPU和操作系统实用的最大大小低于设置的最大值。如果设定的缓冲池的大小大于1G,设置innodb_buffer_pool_instances的值大于1,
    在服务器繁忙的时候可以提高伸缩性,不过在实际的测试中,发现带来的性能提升并不明显,初步设置innodb_buffer_pool_instances为1。
    innodb_buffer_pool_instances=8 在很小的 buffer_pool 大小时有很大的不同,而使用大的buffer_pool时,innodb_buffer_pool_instances=1的表现最棒。
    这是你安装完InnoDB后第一个应该设置的选项。缓冲池是数据和索引缓存的地方:这个值越大越好,这能保证你在大多数的读取操作时使用的是内存而不是硬盘。
    典型的值是5-6GB(8GB内存),20-25GB(32GB内存),100-120GB(128GB内存)。建议使用物理内存的 75%
    9、innodb_buffer_pool_instances=8。可以开启多个内存缓冲池,把需要缓冲的数据hash到不同的缓冲池中,这样可以并行的内存读写。
    等于8是默认值,当设置大的innodb_buffer_pool_size时,该值设置成1最佳。大概一个1G的innodb_buffer_pool_size对应一个instance。12G的buffer pool,那么instances有10
    10、innodb_buffer_pool_chunk_size。MySQL 5.7.5后Innodb_buffer_pool_size一方面可以动态分配。但另一方面也引入了一个新特性。
    bp分配必须是innodb_buffer_pool_chunk_size的倍数。
    同时最好是:innodb_buffer_pool_chunk_size*innodb_buffer_pool_instances默认是128M。
    11、innodb_log_file_size=1024M设置单个innodb日志文件的大小。默认情况下,InnoDB 使用两个值。

    12、max_connections=10000

    13、max_allowed_packet = 16M。mysql根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败。
    mysql默认接受data最大是1M,也就是超过了就会失败。
    14、sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'。不然,在给char类型的字段插入值时,如果超过255个字符就会报错。
    sql_mode的默认值是:'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'


    15、
    igoodful@qq.com
  • 相关阅读:
    BZOJ 1444 有趣的游戏(AC自动机+矩阵快速幂)
    BZOJ 1190 梦幻岛宝珠(分组01背包)
    BZOJ 1562 变换序列(二分图匹配)
    BZOJ 1483 梦幻布丁(链表+启发式合并)
    BZOJ 1222 产品加工(DP)
    java GUI编程一
    java 网络编程
    java 异常
    java 线程二
    java 线程一
  • 原文地址:https://www.cnblogs.com/igoodful/p/8878138.html
Copyright © 2011-2022 走看看