做英语作业的网站,如何做电商运营,百度竞价排名又叫,山西建设网站公司MariaDB/MySQL的默认设置性能非常差#xff0c;仅仅起一个功能测试的作用#xff0c;不能用在生产环境中#xff0c;因此要对一些参数进行调整优化。当然#xff0c;对配置文件各参数的调整需要根据实际环境#xff0c;不同时期不同数量级的数据进行性能优化。MySQL/Maria…MariaDB/MySQL的默认设置性能非常差仅仅起一个功能测试的作用不能用在生产环境中因此要对一些参数进行调整优化。当然对配置文件各参数的调整需要根据实际环境不同时期不同数量级的数据进行性能优化。MySQL/MariaDB 配置文件位于 /etc/my.cnf。 每次更改此文件后你需要重启 MySQL 服务以使更改生效。本文的参数配置基于MariaDB 10.2硬件内存4G。文中一些选项值的设置只是推荐值不要盲目的接受这些建议。每个 MySQL 设置都是不同的在进行任何更改之前需要慎重考虑。基本结构[client]port 3306 #客户端默认连接端口socket /tmp/mysql.sock #用于本地连接的socket套接字[mysqld] # 服务端基本配置port 3306 # mysql监听端口socket /tmp/mysql.sock #为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件user mariadb # mysql启动用户basedir /usr/local/mariadb # 安装目录datadir /data/mysql # 数据库数据文件存放目录log_error /data/mysql/mariadb.err #记录错误日志文件pid-file /data/mysql/mariadb.pid #pid所在的目录skip-external-locking #不使用系统锁定要使用myisamchk,必须关闭服务器...my.cnf配置文件以方括号如[client]区分模块作用域其中[client]表示客户端配置[mysqld]是服务端配置。以上几个选项是最基础的每个选项有简单说明其中有关路径的配置是基于本站文章CentOS7下源码编译安装MariaDB 10.2和Linux下使用二进制格式安装MariaDB的安装路径来配置的所以在配置前可以先按照两文先安装好MairaDB。选项配置及说明key_buffer_size 32M 这个参数用来缓存MyISAM存储引擎的索引参数。MySQL5.5默认为InnoDB存储引擎所以这个参数可以设置小点64MB即可。max_allowed_packet 1M 允许最大接收数据包的大小防止服务器发送过大的数据包。可以设置为16MB或者更大但设置的太大也可能有危险。table_open_cache 128 #MySQL每打开一个表都会读入一些数据到table_open_cache缓存中当MySQL在这个缓存中找不到相应信息时才会去磁盘上读取。默认值64假定系统有200个并发连接则需将此参数设置为200*N(N为每个连接所需的文件描述符数目)当把table_open_cache设置为很大时如果系统处理不了那么多文件描述符那么就会出现客户端失效连接不上。sort_buffer_size 768K 在表进行order by和group by排序操作时由于排序的字段没有索引会出现Using filesort为了提高性能可用此参数增加每个线程分配的缓冲区大小。默认为256KB这个参数不要设置过大一般在128256KB即可。另外一般出现Using filesort的时候要通过增加索引来解决。net_buffer_length 8K 包消息缓冲区初始化为net_buffer_length字节但需要时可以增长到max_allowed_packet字节。read_buffer_size 768K 该参数用于表的顺序扫描表示每个线程分配的缓冲区大小。比如在进行全表扫描时MySQL会按照数据的存储顺序依次读取数据块每次读取的数据块首先会暂存在read_buffer_size中当buffer空间被写满或者全部数据读取结束后再将buffer中的数据返回给上层调用者以提高效率。默认为128K这个参数不要设置过大一般在128256之间。read_rnd_buffer_size 512K 该参数用于表的随机读取表示每个线程分配的缓冲区大小。比如按照一个非索引字段做order by排序操作时就会利用这个缓冲区来暂存读取的数据。默认为256KB这个参数不要设置过大一般在128512KB。myisam_sort_buffer_size 8M 当对MyISAM表执行repair table或创建索引时用以缓存排序索引设置太小时可能会遇到” myisam_sort_buffer_size is too small”thread_cache_size 16 线程池线程缓存。用来缓存空闲的线程以至于不被销毁如果线程缓存在的空闲线程需要重新建立新连接则会优先调用线程池中的缓存很快就能响应连接请求。每建立一个连接都需要一个线程与之匹配。query_cache_size 16M 缓存select语句和结果集大小的参数。查询缓存会存储一个select查询的文本与被传送到客户端的相应结果。如果之后接收到一个相同的查询服务器会从查询缓存中检索结果而不是再次分析和执行这个同样的查询。如果你的环境中写操作很少读操作频繁那么打开query_cache_type1会对性能有明显提升。如果写操作频繁则应该关闭它(query_cache_type0)。tmp_table_size 32M 临时HEAP数据表的最大长度(默认设置是32M); 超过这个长度的临时数据表将被转换为MyISAM数据表并存入一个临时文件。explicit_defaults_for_timestamp true 是否显示默认时间戳#skip-networkingmax_connections 500 该参数用来设置最大连接数告诉你当前你的服务器允许多少并发连接。默认为100一般设置为512-1000即可。请记住太多的连接会导致内存的使用量过高并且会锁住你的 MySQL 服务器。一般小网站需要 100-200 的连接数而较大可能需要 500-800 甚至更多。这里的值很大程度上取决于你 MySQL/MariaDB 的使用情况。max_connect_errors 100 如果有时网络抽风或者应用配置错误或者其他原因导致客户端短时间内不断的尝试连接客户端可能会被列入黑名单然后将无法连接直到再次刷新主机缓存。这个选项默认值太小了可以考虑设的足够大(如果你的服务器配置够强大的话)。open_files_limit 65535 mysql打开最大文件数log-binmysql-bin 这些路径相对于datadirbinlog_formatmixed 日志格式server-id 1 给服务器分配一个独一无二的ID编号; n的取值范围是1~2的32次方启用二进制日志功能。在复制数据同步的时候会用到Helloweba后面会有文章介绍。expire_logs_days 10 启用二进制日志后保留日志的天数。服务器会自动清理指定天数前的日志文件如果不设置则会导致服务器空间耗尽。一般设置为714天。default_storage_engine InnoDB 新数据表的默认存储引擎(默认设置是MyISAM)。这项设置还可以通过–default-table-type选项来设置。innodb_file_per_table 1 InnoDB 提供了更灵活的方式它把每个数据库的信息保存在一个 .ibd 数据文件中。每个 .idb 文件代表它自己的表空间。通过这样的方式可以更快地完成类似 “TRUNCATE” 的数据库操作当删除或截断一个数据库表时你也可以回收未使用的空间。这样配置的另一个好处是你可以将某些数据库表放在一个单独的存储设备。这可以大大提升你磁盘的 I/O 负载。innodb_data_home_dir /data/mysql InnoDB主目录所有与InnoDB数据表有关的目录或文件路径都相对于这个路径。在默认的情况下这个主目录就是MySQL的数据目录。innodb_data_file_path ibdata1:10M:autoextend 用来容纳InnoDB为数据表的表空间: 可能涉及一个以上的文件; 每一个表空间文件的最大长度都必须以字节(B)、兆字节(MB)或千兆字节(GB)为单位给出; 表空间文件的名字必须以分号隔开; 最后一个表空间文件还可以带一个autoextend属性和一个最大长度(max:n)。innodb_log_group_home_dir /data/mysql 用来存放InnoDB日志文件的目录路径(如ib_logfile0、ib_logfile1等)。在默认的情况下InnoDB驱动程序将使用 MySQL数据目录作为自己保存日志文件的位置。innodb_buffer_pool_size 128M 这个参数是InnoDB存储引擎的核心参数默认为128KB这个参数要设置为物理内存的60%70%。innodb_log_file_size 32M 事务日志文件写操作缓存区的最大长度(默认设置是1MB)。innodb_log_buffer_size 8M 事务日志所使用的缓存区。InnoDB在写事务日志的时候为了提高性能先将信息写入Innodb Log Buffer中当满足innodb_flush_log_trx_commit参数所设置的相应条件(或者日志缓冲区写满)时再将日志写到文件(或者同步到磁盘)中。可以通过innodb_log_buffer_size参数设置其可以使用的最大内存空间。默认是8MB一般为1664MB即可。innodb_flush_log_at_trx_commit 1 这个选项决定着什么时候把日志信息写入日志文件以及什么时候把这些文件物理地写(术语称为”同步”)到硬盘上。设置值0的意思是每隔一秒写一次日 志并进行 同步这可以减少硬盘写操作次数但可能造成数据丢失; 设置值1(设置设置)的意思是在每执行完一条COMMIT命令就写一次日志并进行同步这可以防止数据丢失但硬盘写操作可能会很频繁; 设置值2是一般折衷的办法即每执行完一条COMMIT命令写一次日志每隔一秒进行一次同步。innodb_lock_wait_timeout 50 如果某个事务在等待n秒(s)后还没有获得所需要的资源就使用ROLLBACK命令放弃这个事务。这项设置对于发现和处理未能被InnoDB数据表驱动 程序识别出来的死锁条件有着重要的意义。这个选项的默认设置是50s。示例内存4G的my.cnf配置[client]port 3306socket /tmp/mysql.sock[mysqld]port 3306socket /tmp/mysql.sockuser mariadbbasedir /usr/local/mariadbdatadir /data/mysqllog_error /data/mysql/mariadb.errpid-file /data/mysql/mariadb.pidskip-external-lockingkey_buffer_size 64Mmax_allowed_packet 1Mtable_open_cache 256sort_buffer_size 1Mnet_buffer_length 8Kread_buffer_size 1Mread_rnd_buffer_size 512Kmyisam_sort_buffer_size 16Mthread_cache_size 32query_cache_size 32Mtmp_table_size 64Mexplicit_defaults_for_timestamp true#skip-networkingmax_connections 500max_connect_errors 100open_files_limit 65535log-binmysql-binbinlog_formatmixedserver-id 1expire_logs_days 10default_storage_engine InnoDBinnodb_file_per_table 1innodb_data_home_dir /data/mysqlinnodb_data_file_path ibdata1:10M:autoextendinnodb_log_group_home_dir /data/mysqlinnodb_buffer_pool_size 256Minnodb_log_file_size 64Minnodb_log_buffer_size 8Minnodb_flush_log_at_trx_commit 1innodb_lock_wait_timeout 50[mysqldump]quickmax_allowed_packet 16M[mysql]no-auto-rehash[myisamchk]key_buffer_size 64Msort_buffer_size 1Mread_buffer 2Mwrite_buffer 2M[mysqlhotcopy]interactive-timeout