MySQL配置学习笔记

来源:互联网 发布:两个excel表格匹配数据 编辑:程序博客网 时间:2024/05/29 17:49

1、MySQL的特点

(1)网络访问

(2)IO读写频繁


2、MySQL基本配置

bind-address = 10.6.20.1port = 3306character_set_server = utf8max_connect_errors = 1000000max_connections = 500datadir = /data/mysqllog-error = /var/log/mysql/mysql-error.log-errorskip_name_resolveback_log = 2000log-bin = /data/mysqlbinlog-format = MIXEDexpire_logs_days = 2

或者

[mysqld] basedir=D:/Program Files (x86)/MySql # 设置mysql的安装目录 datadir=D:/Program Files (x86)/MySql/data # 设置mysql数据库的数据的存放目录,必须是data,或者是//xxx/data *************************分割线******************* port = 3306 socket = /tmp/mysql.sock default-character-set=gbk # 设置mysql服务器的字符集 skip-locking key_buffer = 16K max_allowed_packet = 1M table_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 64K [client] #password = your_password port = 3306 socket = /tmp/mysql.sock default-character-set=gbk *************************分割线******************* 


3、重要参数的解释:

bind-address 

远程访问的绑定地址,如果没有这句话,那么对远程访问没有限制。如果有这句话,只能限制这句话的IP来访问


default-storage-engine=INNODB

默认的表存储引擎


sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

# SQL模式为strict模式


query_cache_size=0

# 查询缓存大小,用于缓存SELECT查询结果。如果有许多返回相同查询结果的SELECT查询,并且很少改变表,可以设置query_cache_size大于0,可以极大改善查询效率。而如果表数据频繁变化,就不要使用这个,会适得其反


back_log=600

  指定MySQL可能的连接数量。当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很短)检查连接并且启动一个新线程。
  back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。如果系统在一个短时间内有很多连接,则需 要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于 你的操作系统的限制将是无效的。
  当观察MySQL进程列表,发现大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时,就要加大 back_log 的值。back_log默认值为50。


table_cache = 614
#指示表调整缓冲区大小。# table_cache 参数设置表高速缓存的数目。每个连接进来,都会至少打开一个表缓存。#因此,table_cache 的大小应与 max_connections 的设置有关。例如,对于 200 个#并行运行的连接,应该让表的缓存至少有 200 × N ,这里 N 是应用可以执行的查询#的一个联接中表的最大数量。此外,还需要为临时表和文件保留一些额外的文件描述符。
# 当 Mysql 访问一个表时,如果该表在缓存中已经被打开,则可以直接访问缓存;如果#还没有被缓存,但是在 Mysql 表缓冲区中还有空间,那么这个表就被打开并放入表缓#冲区;如果表缓存满了,则会按照一定的规则将当前未用的表释放,或者临时扩大表缓存来存放,使用表缓存的好处是可以更快速地访问表中的内容。执行 flush tables 会#清空缓存的内容。一般来说,可以通过查看数据库运行峰值时间的状态值 Open_tables #和 Opened_tables ,判断是否需要增加 table_cache 的值(其中 open_tables 是当#前打开的表的数量, Opened_tables 则是已经打开的表的数量)。即如果open_tables接近table_cache的时候,并且Opened_tables这个值在逐步增加,那就要考虑增加这个#值的大小了。还有就是Table_locks_waited比较高的时候,也需要增加table_cache。



0 0
原创粉丝点击