Mysql的优化#yyds干货盘点#

MySQL优化三大方向


优化MySQL所在服务器内核。

对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进行参数调整。

对SQL语句以及表优化。

服务器内核方面优化:

网络参数配置

网络参数配置需mysql数据库要修改配置文件/etc/sysctl.conf,可以在配置文件后面添加一下内容

net.core.somaxconn=65536 #每服务器租用多少钱一年个监听端口允许的最大的监听队列长度,这个值应该适当增大。

net.comysql安装配置教程re.netdev_max_backlog=65536 #当网络端口数据库系统工程师接收数据包的速率比内核处理数据速度快时,允许发送到对列中的最大包数

net.ipv4.tcp_max_syn_backlog=65服务器内存条和普通内存条区别53调度策略6 #还未获得链接的请服务器租用求可保持在队列中的数量,当超过这个数目是,链接请求就可能被抛弃

net.ipv4.tcp_fin_timeout=10 #tcp链接等待时间,调整这个参数目的是为了加快TCP链接回收的速度

net.ipv4.tcp_tw_reuse=1 #加快TCP链接回收的速度

net.ipv4.tcp_tw_recycle=1 #加快TCP链接回收的速度

以下四个参数设置tcp链接接收和发送数据时缓冲区大小的最大值和和默认值,应该将其调整的更大一些。

net.core.wmem_default=87380

net.core.wmem数据库系统概论第五版课后答案_max=16777216

net.core.rmem_def服务器操作系统银河麒麟ault=87380

net.core.rmem_max=16数据库系统工程师777216

以下三个参数用于减少时效的TCP链接所占用的资源,提升资源回收效率,改的较小一些

net.ipv4.tcp_keepalive_time=100 #代表TCP发送keepalive探测消息的时间间隔

net.ipv4.tcp_kee数据库系统概论第五版课后答案palive_intvl=10 #代表当TCp发送keepalive探测消息未获得确认是重发探测消息的时间间mysql数据库命令大全

net.ipv4.tcp_k服务器租用多少钱一年eepalive_probes=3 #代表TCP链接失效之前,最多发送数据库是什么多少keepalive探测消息

内存相关参数配置

内存的相关参数同样mysql数据库命令大全修改/etc/sysctl.conf文件

kernel.shmmax=2147483648用于定义单个共享内存段的最大值,这个参数应该设置的足够大,以便共享内存段能容纳下整个InnoDB缓冲池的大小。建议设置成物理内存的一半。

vm.swappiness=0 表示除非虚拟内存使用完了,否则不用swap分区。

特定资源限制配置

这个配置需要修改配置文件/etc/security/limits.conf,主要的就是对打开文件数量的配置,在MySQL的InnoDB存储引擎中,每一张表就对应着2数据库系统的核心是-3个文件,对于允许打开文件的数量适当的增大,可以使MySQL的数据库性能更好。

打开文件数的配置

* soft nofile 65535

* hard nofile 65535

* 表示对所有用户生效

soft 代表是当前系统生效的设置

hard 代表系统中所能设定的最大值

nofi数据库设计le 表示所限制的资源是打开文件的数量

磁盘调度策略配置

一般默认情况下,CentOS系统的磁盘调度策略是完全公平队列模式(cfq),这种调度策略对于数据库服务器来说不太适合,而应该使用deadline调度策略。通过以下命令可以修改调服务器度策略:

ecmysql数据库ho deadline>/sys/block/数据库系统工程师devname/queue/scheduler

以上就是一些比较重要的配置MySQL数据库服务器系数据库系统工程师统参数的调整,调整这些系统参数据库管理系统数后,会使MySQL服务器的性能更好,但这服务器内存条和普通内存条区别并不是全部的系统参数调整。数据库系统工程师可以参看Linux系统参数调优的相关数据了解数据库查询语句更多系统参数调优。

Mysql参数优化:

1:My调度策略SQL 默认的最大连接数为 100,可以服务器操作系统银河麒麟在 mymysql增删改查语句sql 客户mysql数据库命令大全端使用以下命令查看

mysql> show variables like ‘max_connections’;

2:查看当前访问Mysql的线程

mysql> show processlist;

3:设置最大连接数

mysql>set global max_connections = 5000;

最大可设置16384,超过没用

4:查看当前被使用的connemysqlctions

mysql>sho服务器操作系统银河麒麟w global status like ‘max_user_connections’

还有一些其他的优化如字符集,存储引擎设置等。

对MySQL语句性能优化的16条经验

① 为查询缓存优化查mysql创建表数据库原理及应用

② EXPL数据库原理及应用AIN 我们的SELECT查询(可以查看执行的行数)

③ 当只要一行数据时使用LIMIT 1

④ 为搜索字段建立索引

⑤ 在Join表的时候使用相当类型的列,并将其索引

⑥ 千万不要 ORDER BY RAND ()

⑦ 避免SELECT *

⑧ 永远为每张表设置一个ID

⑨ 可以使用ENUM 而不要VARCHAR

⑩ 尽可能的使数据库是什么用NOT NU数据库系统LL

⑪ 固定长度的表会更快

⑫ 垂直分割

⑬ 拆分打的DELETE或INSERT语句

mysql怎么读 越小的列会越快

⑮ 选择正确的存储引擎

⑯ 小心 “永久链接”68