数码资讯
linux环境下mysql服务器优化的详细解决方案
评论:本文详细描述了如何在Linux环境中优化MySQL服务器。 普通MySQL用户使用表创建和索引操作,并优化查询写入的使用。然而,仍然有一些优化只能由MySQL管理员和系统管理员来完成。这些管理员可以控制MySQL服务器或MySQL运行的机器,有些服务器参数直接适用于查询处理,它们可以被打开,而
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
评论:本文详细描述了如何在Linux环境中优化MySQL服务器。
普通MySQL用户使用表创建和索引操作,并优化查询写入的使用。然而,仍然有一些优化只能由MySQL管理员和系统管理员来完成。这些管理员可以控制MySQL服务器或MySQL运行的机器,有些服务器参数直接适用于查询处理,它们可以被打开,而一些硬件配置问题直接影响查询处理的速度,它们应该被调整。
磁盘问题
如前所述,磁盘搜索性能的一大瓶颈,这个问题变得越来越明显,当数据开始增长,缓存成为可能。对于大型数据库,在那里你有或多或少的随机存取数据,你可以依靠你读至少一个磁盘寻道写几个磁盘搜索为了减少的问题,一个低的搜索时间的磁盘使用。
为了增加可用磁盘轴的数量(从而减少跟踪开销),可以将符号链接文件加入到不同的磁盘或分区磁盘中。
1。使用符号连接
这意味着将索引数据文件符号从普通数据目录链接到其他磁盘(也可以分割)。这样可以使搜索和读取时间更好(如果磁盘不用于其他事情)
2。分割
分割意味着你有很多磁盘并把第一块放在第一盘,第二块在第二盘,和块上(nmodnumber_of_disks磁盘等),这意味着如果你的正常数据的尺寸大小(或完美的对齐),你将获得更好的性能。注意是否分区取决于操作系统和分区的大小,用不同的分区大小测试您的应用程序。见10.8使用你自己的基准。注意之间的分割速度差异取决于参数,这取决于你如何分裂参数和磁盘的数量,你可以在量级得到的不同。请注意,你必须选择随机或顺序访问ACC优化字母S.
为了可靠,你可能想使用攻击RAID0+1(分割+镜像),但是在这种情况下,你将需要2×n司机节省N驱动器的数据。如果你有钱,这可能是最好的选择。但是,你可能也会投资一些卷管理软件处理有效。
一个好的选择是做一个重要的数据(它可以再生)在RAID0磁盘的存在,而那些真正重要的数据(如主机信息和日志文件)在RAID0+1或数据节点阵列disk.raidn可能如果你有很多写更新奇偶校验位是一个问题的存在。
你也可以设置为数据库使用的文件系统参数。一个简单的改变是用noatime选项挂载文件系统。这是最后一次跳过更新节点,这将避免一些磁盘搜索。
硬件问题
使用硬件可以更有效地提高服务器的性能:
1,在机器上安装更多的内存,这样可以增加服务器的缓存和缓冲区的大小,使服务器更经常地使用存储在内存中的信息,并减少从磁盘获取信息的请求。
2,如果有足够的RAM使所有的交换机在内存文件系统中完成,那么系统应该重新配置,以除去所有的磁盘交换设置。否则,即使有足够的内存交换,一些系统仍然需要与磁盘交换。
3,添加一个更快的磁盘以减少I/O等待时间,搜索时间是决定性能的主要因素。一旦磁头被定位,从磁道读取块就更快了。
4,你要确保在数据理解系统的负载特性是重新放置到不同的设备。如果有一个特定的物理设备的某些重大活动,将数据库的位置可以使性能恶化。例如,不要把数据库服务器设备处理大量的网络通信。
5,在设置MySQL时,应该将其配置为使用静态库而不是共享库。使用共享库的动态二进制系统可以节省磁盘空间,但静态二进制系统更快。然而,如果你想加载用户定义的函数,你可以不使用静态二进制系统,因为UDF机制依赖于动态连接。
服务器参数的选择
服务器有几个参数(或变量),可以改变和影响他们的操作。系统变量的当前值可以通过mysqladminvaribles命令执行检查,和几个参数来查询相关的主要。有必要提及这一点:
delayed_queue_size
这个参数决定排排队从insertdelayed语句执行客户端的其他insertdelayed陈述前封闭的数量。增加这个参数的值使服务器从请求接收更多的行,因此客户可以继续执行无阻塞。
key_buffer_size
这个参数是用来存储索引块的缓冲区大小。如果有更多的内存,增加这个值可以节省索引创建和修改的时间。较大的值使MySQL能够在内存中存储更多的索引块,这增加了在不读取磁盘块的情况下在内存中查找键值的可能性。
在mysql3.23和以后的版本中,如果关键缓冲区大小的增加,您可能还想与mdash启动服务器;mdash;init文件选项,允许你指定一个SQL语句的执行文件,当服务器启动。如果你有一个只读的表,你想存储在记忆,你可以把它们复制到指数找到一个非常快的堆表。
普通MySQL用户使用表创建和索引操作,并优化查询写入的使用。然而,仍然有一些优化只能由MySQL管理员和系统管理员来完成。这些管理员可以控制MySQL服务器或MySQL运行的机器,有些服务器参数直接适用于查询处理,它们可以被打开,而一些硬件配置问题直接影响查询处理的速度,它们应该被调整。
磁盘问题
如前所述,磁盘搜索性能的一大瓶颈,这个问题变得越来越明显,当数据开始增长,缓存成为可能。对于大型数据库,在那里你有或多或少的随机存取数据,你可以依靠你读至少一个磁盘寻道写几个磁盘搜索为了减少的问题,一个低的搜索时间的磁盘使用。
为了增加可用磁盘轴的数量(从而减少跟踪开销),可以将符号链接文件加入到不同的磁盘或分区磁盘中。
1。使用符号连接
这意味着将索引数据文件符号从普通数据目录链接到其他磁盘(也可以分割)。这样可以使搜索和读取时间更好(如果磁盘不用于其他事情)
2。分割
分割意味着你有很多磁盘并把第一块放在第一盘,第二块在第二盘,和块上(nmodnumber_of_disks磁盘等),这意味着如果你的正常数据的尺寸大小(或完美的对齐),你将获得更好的性能。注意是否分区取决于操作系统和分区的大小,用不同的分区大小测试您的应用程序。见10.8使用你自己的基准。注意之间的分割速度差异取决于参数,这取决于你如何分裂参数和磁盘的数量,你可以在量级得到的不同。请注意,你必须选择随机或顺序访问ACC优化字母S.
为了可靠,你可能想使用攻击RAID0+1(分割+镜像),但是在这种情况下,你将需要2×n司机节省N驱动器的数据。如果你有钱,这可能是最好的选择。但是,你可能也会投资一些卷管理软件处理有效。
一个好的选择是做一个重要的数据(它可以再生)在RAID0磁盘的存在,而那些真正重要的数据(如主机信息和日志文件)在RAID0+1或数据节点阵列disk.raidn可能如果你有很多写更新奇偶校验位是一个问题的存在。
你也可以设置为数据库使用的文件系统参数。一个简单的改变是用noatime选项挂载文件系统。这是最后一次跳过更新节点,这将避免一些磁盘搜索。
硬件问题
使用硬件可以更有效地提高服务器的性能:
1,在机器上安装更多的内存,这样可以增加服务器的缓存和缓冲区的大小,使服务器更经常地使用存储在内存中的信息,并减少从磁盘获取信息的请求。
2,如果有足够的RAM使所有的交换机在内存文件系统中完成,那么系统应该重新配置,以除去所有的磁盘交换设置。否则,即使有足够的内存交换,一些系统仍然需要与磁盘交换。
3,添加一个更快的磁盘以减少I/O等待时间,搜索时间是决定性能的主要因素。一旦磁头被定位,从磁道读取块就更快了。
4,你要确保在数据理解系统的负载特性是重新放置到不同的设备。如果有一个特定的物理设备的某些重大活动,将数据库的位置可以使性能恶化。例如,不要把数据库服务器设备处理大量的网络通信。
5,在设置MySQL时,应该将其配置为使用静态库而不是共享库。使用共享库的动态二进制系统可以节省磁盘空间,但静态二进制系统更快。然而,如果你想加载用户定义的函数,你可以不使用静态二进制系统,因为UDF机制依赖于动态连接。
服务器参数的选择
服务器有几个参数(或变量),可以改变和影响他们的操作。系统变量的当前值可以通过mysqladminvaribles命令执行检查,和几个参数来查询相关的主要。有必要提及这一点:
delayed_queue_size
这个参数决定排排队从insertdelayed语句执行客户端的其他insertdelayed陈述前封闭的数量。增加这个参数的值使服务器从请求接收更多的行,因此客户可以继续执行无阻塞。
key_buffer_size
这个参数是用来存储索引块的缓冲区大小。如果有更多的内存,增加这个值可以节省索引创建和修改的时间。较大的值使MySQL能够在内存中存储更多的索引块,这增加了在不读取磁盘块的情况下在内存中查找键值的可能性。
在mysql3.23和以后的版本中,如果关键缓冲区大小的增加,您可能还想与mdash启动服务器;mdash;init文件选项,允许你指定一个SQL语句的执行文件,当服务器启动。如果你有一个只读的表,你想存储在记忆,你可以把它们复制到指数找到一个非常快的堆表。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。