首页 > 数据库 >mysql参数配置文件

mysql参数配置文件

时间:2022-12-15 10:03:06浏览次数:66  
标签:缓存 配置文件 buffer 查询 innodb mysql 参数 pool size

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

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

mysql参数配置文件_mysql

mysql参数配置文件_mysql_02

 

如何修改呢?

mysql参数配置文件_mysql_03

mysql参数配置文件_查询缓存_04

 

 

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,且符合查询缓存的要求,客户端的查询语句和记录集,则可以缓存起来,共其他客户端使用。
query_cache_size

mysql参数配置文件_缓存_05

 

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、



标签:缓存,配置文件,buffer,查询,innodb,mysql,参数,pool,size
From: https://blog.51cto.com/u_13912516/5938631

相关文章

  • golang.mysql
    一、mysql操作基本语法1、创建名称nulige的数据库 ​​CREATEDATABASEnuligeDEFAULTCHARSETutf8COLLATEutf8_general_ci;<br><br>usenulige​​2、建表,Id自增​​c......
  • MySQL锁
       分类 MySQL中的锁,按照锁的粒度分,分为以下三类: 全局锁:锁定数据库中的所有表。表级锁:每次操作锁住整张表。行级锁:每次操作锁住对应的行数据。全局锁全局......
  • MySQL
    MySQL临时表MySQL临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。临时表在MySQL3.23版本中添......
  • Linux中的limits.conf配置文件解析
    一、引言----为何需要文件描述符资源问题:节约内存资源。在服务器上,每个打开的文件都需要消耗内存来管理。安全问题:如果不限制的话,有可能启动一个进程就是无限的创建和打开新......
  • mysql命令行操作
    1、展示数据库2、进入数据库、查看数据库中的表......
  • PHP 如何获取 POST 请求发送的 JSON 对象参数 All In One
    PHP如何获取POST请求发送的JSON对象参数AllInOnephpgetpostjsondata#GetJSONasastring$json_str=file_get_contents('php://input');#Getasa......
  • Docker 中应用(tomcat 、nginx、mysql、redis)部署
    1.tomcat在docker安装2.nginx在docker安装3.mysql在docker安装4.redis在docker中文件安装......
  • EMQx 通过mysql实现 acl
    Acl访问控制说明:按照道理来说 mysql实现acl和mysql的鉴权,要在一块的说明的,但是在由于在理解鉴权的时候对acl的理解不是那么深刻,所以只能分开来验证和说明了。虽然EMQ已......
  • gateway动态路由实现 mysql+redis 实现
    前言大家都知道咱们在通常是使用配置文件来实现配置,但是这样就有一个弊端,就是每次修改的时候都要去重启来实现,并且管理起来非常麻烦,所有就有了这种实现方式。现在的实现方式......
  • spring boot 实现Mysql数据脚本导出和数据库脚本的导入
    前言在开发过程中这样一个需求,有些数据需要从数据库导出,然后导入到另外的数据库中。数据导出@SneakyThrowspublicStringexport(){//获取数据库连接对象......