首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql 纯读配置优化

基础概念

MySQL 是一个关系型数据库管理系统,广泛用于各种应用中。纯读配置优化是指通过调整 MySQL 的配置参数,使其更适合只读操作,从而提高读取性能。

相关优势

  1. 提高读取性能:通过优化配置,可以显著提高数据库的读取速度。
  2. 减少资源消耗:优化后的配置可以减少 CPU 和内存的使用,降低服务器负载。
  3. 提升系统稳定性:合理的配置可以避免因资源竞争导致的系统不稳定。

类型

  1. 连接数优化:调整 max_connections 参数,控制同时连接数据库的最大数量。
  2. 缓冲区优化:调整 innodb_buffer_pool_sizekey_buffer_size 等参数,优化缓存区的大小。
  3. 查询优化:启用查询缓存,优化查询语句,减少不必要的磁盘 I/O 操作。
  4. 日志优化:关闭不必要的日志记录,如二进制日志(binlog),减少磁盘 I/O 负担。

应用场景

  1. 读写分离:在高并发读取场景下,通过主从复制实现读写分离,主库负责写操作,从库负责读操作。
  2. 数据仓库:在数据仓库系统中,大部分操作是读取数据,优化读取性能尤为重要。
  3. Web 应用:对于高流量的 Web 应用,优化读取性能可以提高用户体验。

遇到的问题及解决方法

问题:读取性能低下

原因

  • 缓存区设置过小,导致频繁的磁盘 I/O 操作。
  • 连接数过多,导致资源竞争。
  • 查询语句复杂,执行效率低。

解决方法

  1. 增加 innodb_buffer_pool_sizekey_buffer_size 的值。
  2. 调整 max_connections 参数,限制同时连接数。
  3. 优化查询语句,使用索引,减少不必要的 JOIN 操作。

示例代码

代码语言:txt
复制
-- 调整缓冲区大小
SET GLOBAL innodb_buffer_pool_size = 2G;
SET GLOBAL key_buffer_size = 512M;

-- 调整最大连接数
SET GLOBAL max_connections = 500;

-- 启用查询缓存
SET GLOBAL query_cache_size = 64M;
SET GLOBAL query_cache_type = 1;

参考链接

通过以上优化措施,可以显著提高 MySQL 的读取性能,适用于各种高并发读取场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL配置优化

当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用。 (3)key_buffer_size 索引缓冲区的大小,它决定索引处理的速度,尤其是索引的速度。...最佳选项是将其从一开始就停用,设为0(现在MySQL 5.6的默认值)并利用其他方法加速查询:优化索引、增加拷贝分散负载或者启用额外的缓存(比如Redis或Memcached)。...当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机缓存区。进行排序查询时,MySQL会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。...如果调高该值,MySQL同时将增加heap表的大小,可达到提高联接查询速度的效果,建议尽量优化查询,要确保查询过程中生成的临时表在内存中,避免临时表过大导致生成基于硬盘的MyISAM表。 ?...Created_tmp_files表示MySQL服务创建的临时文件文件数,比较理想的配置是: Created_tmp_disk_tables / Created_tmp_tables * 100% <

1.1K11

MySQL配置优化

MySQL参数优化对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系, 优化不可能一次性完成,需要不断的观察以及调试,才有可能得到最佳效果。...下面列出了对性能优化影响较大 的主要变量,主要分为连接请求的变量和缓冲区变量 1、连接请求的变量 1). max_connections MySQL的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值...设置规则如下:1GB 内存配置为8,2GB配置为16,3GB配置为32, 4GB或更高内存,可配置更大。...read_rnd_buffer_size = 16M    MySql 的随机(查询操作)缓冲区大小。当按任意顺序读取行时(例如, 按照排序顺序),将分配一个随机缓存区。...但MySql会为每个客户连接发放该 缓冲空间,所以应尽量适当设置该值,以避免内存开销过大。 注:顺序是指根据索引的叶节点数据就 能顺序地读取所需要的行数据。

2K30
  • mysql优化之日志配置

    如果你选mysql数据库作为数据持久化的工具,那么就需要一个合理的日志配置,这样有助于排错和数据备份及恢复! 首先我们可以通过下面的MySQL的sql查询正在运行中的日志配置。...这个命令是用来查询MySQL运行时配置的语句,LIKE后面的可以接通配符查找! 还有对应的设置语法叫SET GLOBAL,后面我们会用到。...通过文件配置 mysql配置文件位于 /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user...mysqld/mysqld.pid log_error=/var/log/mysql/error_mysqld.log 接下来需要重启服务器即可是配置生效!...热配置 有时候可能想在不重启mysql的方式开启日志,怎么办? 当然我们可以通过MySQL的sql查询开启。

    59340

    mysql 常用配置优化

    Mysql常用配置优化 [client] 该目录下的内容常用来进行localhost登陆,一般不需要修改 port = 3306 # 端口号 socket = /var/lib/mysql/mysql.sock...# 套接字文件(localhost登陆会自动生成) [mysql] 包含一些客户端mysql命令行的配置 no-auto-rehash # 默认不自动补全 auto-rehash自动补全 [mysqld...] mysql优化配置目录,除硬件和环境配置外,全部优化在此配置, 一般服务器安装只有此配置目录 user = mysql #默认启动用户,一般不需要修改,可能出现启动不成功 port = 3306...以下配置较为重要 back_log = 600 #在MYSQL暂时停止响应新请求之前,短时间内的多少个请求可以被存在堆栈中。...transaction_isolation = READ-COMMITTED #事务隔离级别 1.READ-UNCOMMITTED-未提交 --脏(开发生产均不建议) 2.READ-COMMITTE

    1.8K30

    Mysql升级及配置优化

    mysql 5.6升级到5.7 Mysql官网下载最新5.7社区版,mysql-5.7.26-win32.zip 下载解压后的文件: 添加配置文件my.ini,主要是数据库配置、参数设置(端口号、字符集...、缓冲区大小等),参数配置会影响到mysql读写性能,优化性能后面具体分析 [mysqld]下配置explicit_defaults_for_timestamp=true,这是相对于5.6需要添加的一个配置...运行时占用优化:table_definition_cache : 1400=>400 table_open_cache:2048=>256,调整后运行内存占用160M左右 Mysql配置优化 调试sql...优化配置:查询耗时 mysql 5.6 查询耗时2s左右,占用400M左右 innodb_log_buffer_size=1M  innodb_thread_concurrency=9 key_buffer_size...5.7比之5.6在查询性能, 运行时占用,机器适配上有较好提升,在性能差的机器上,5.7比5.6有更好的性能 2.mysql优化除sql使用正确索引、分库分表外、读写分离等之外,根据服务器性能合理配置

    98420

    Mysql优化系列(1)--Innodb引擎下mysql自身配置优化

    1.简单介绍 InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定。...3.下面是对线上mysql5.6版本的数据库的配置进行的优化分析记录: 1)内存利用方面: innodb_buffer_pool_size 这个是Innodb最重要的参数,和MyISAM的key_buffer_size...下my.cnf的优化配置,能使mysql性能大大提升: # For advice on how to change settings please see # http://dev.mysql.com/...如果调高该值,MySQL同时将增加heap表的大小,可达到提高联接查询速度的效果,建议尽量优化查询,要确保查询过程中生成的临时表在内存中,避免临时表过大导致生成基于硬盘的MyISAM表。...二、连接数 经常会遇见”MySQL: ERROR 1040: Too manyconnections”的情况,一种是访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散压力,另外一种情况是

    2.5K60

    MYSQL数据优化常用配置参数

    默认:join_buffer_size=256K MySQL的随机缓冲区大小 read_rnd_buffer_size = 32M #是MySQL的随机缓冲区大小。...如果是root用户就配置root,mysql用户就配置mysql log-error=/usr/local/mysql/data/error.log #错误日志配置文件(configure file...mysql cm cm password)时便会报错 如果配置了localhost的话,那么在CDH的安装页面中,配置连接数据库的主机名称必须为localhost 3.强烈不推荐写bind-address...如果指定local关键词,则表明支持从客户主机文件 back_log = 1024 #指定MySQL可能的连接数量。...read_rnd_buffer_size = 32M #是MySQL的随机缓冲区大小。当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机缓存区。

    3.3K21

    mysql性能优化(九) mysql慢查询分析、优化索引和配置

    mysql性能优化(九) mysql慢查询分析、优化索引和配置 强烈推介IDEA2020.2...除了服务器硬件的性能瓶颈,对于MySQL系统本身,我们可以使用工具来优化数据库的性能, 通常有三种:使用索引,使用EXPLAIN分析查询以及调整MySQL的内部配置 二、查询与索引优化分析...my.cnf或my.ini中在[mysqld]一行下面加入两个配置参数 log-slow-queries=/data/mysqldata/slow-query.log long_query_time...使用mysqldumpslow命令可以非常明确的得到各种我们需要的查询语句,对MySQL查询语句的监控、分析、优化MySQL优化非常重要的一步。...一种情形是当优化器估计到使用索引将需要MySQL访问表中的大部分行时。(在这种情况下,表扫描可能会更快些)。

    1.5K30

    性能优化模式(干货!!)

    摘要 性能优化涉及面很广。一般而言,性能优化指降低响应时间和提高系统吞吐量两个方面,但在流量高峰时候,性能问题往往会表现为服务可用性下降,所以性能优化也可以包括提高服务可用性。...另外,原代码库已存在的各种运行、编译、测试、配置环境可复用。主要有两个方面地好处:1. 充分利用代码库中已有的基础设施,快速接入新业务;2....性能恶化模式 在讲解性能优化模式之前,有必要先探讨一下性能恶化模式,因为: 很多性能优化模式的目标之一就是避免系统进入性能恶化模式; 不同性能优化模式可能是避免同一种性能恶化模式; 同一种性能优化模式可能在不同阶段避免不同的性能恶化模式...具体而言,可以从服务端和客户端两个方面进行优化。 服务端优化方案的手段是对服务进行重新规划。...另一次,因为Storm系统直接写MySQL数据库导致数据库连接数耗尽,从而使在线系统无法连接数据库。

    1K40

    MySQL(一)|性能分析方法、SQL性能优化MySQL内部配置优化

    当然也对Mysql内部配置做了一些调整。 最近也在看《高性能MySQL》这本Mysql的经典书籍,很早的时候我就想写一个系列来介绍我在使用Mysql遇到的一些问题。...本文主要讲的内容包括:查看Linux系统性能的常用命令、查询与索引分析方法以及优化方式、Mysql内部配置优化。 文章内容比较干,也比较多,建议大家收藏后慢慢消化。...除了服务器硬件的性能瓶颈,对于MySQL系统本身,我们可以使用工具来优化数据库的性能,通常有三种:使用索引,使用EXPLAIN分析查询以及调整MySQL的内部配置。...三、Mysql内部配置优化 安装MySQL后,配置文件my.cnf在 /MySQL安装目录/share/mysql目录中,该目录中还包含多个配置文件可供参考,有my-large.cnf ,my-huge.cnf...当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机缓存区。进行排序查询时,MySQL会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。

    3K110

    MySQL 优化配置参数(my.cnf)

    Binlog_cache_use和Binlog_cache_disk_use这两个参数对于binlog_cache_size参数的优化很有用。...线程缓存的命中率计算公式为(1-thread_created/connections)*100%,可以通过这个公式来优化和调整thread_cache_size参数。...read_buffer_size:为每个线程对MyISAm表执行顺序所分配的内存。如果数据库有很多顺序,可以增加这个参数,默认值是131072字节。这个参数的值需要是4KB的整数倍。...对于1GB以上大的InnoDB缓存,将缓存分成多个部分可以提高MySQL服务的并发性,减少不同线程缓存页的读写竞争。...如果你配置了单独的undo表空间,要将innodb_undo_logs参数设为33以上来分配额外供数据修改事务使用的undo日志。每个undo日志最多可以支持1024个事务。

    1.5K10

    mysql、幻、不可重复读

    :有个英雄表如下图所示图片第一天 小张 往里面插入数据:BEGIN;INSERT INTO heros_temp values(4, '吕布');小张还没有提交事务的时候,小李对数据表进行了访问,小张看到的结果如下图片小李读到了小张还没有提交的数据...,我们称之为“脏”不可重复读小张想查看 id=1 的英雄是谁,于是他进行了 SQL 查询:SELECT name FROM heros_temp WHERE id = 1;图片然而此时,小李开始了一个事务操作...幻小张想要看下数据表里都有哪些英雄图片这时当小张执行完之后,小李又开始了一个事务,往数据库里插入一个新的英雄“吕布”BEGIN;INSERT INTO heros_temp values(4, '吕布...这种异常情况我们称之为“幻”。总结脏:读到了其他事务还没有提交的数据。不可重复读:对某数据进行读取,发现两次读取的结果不同,也就是说没有读到相同的内容。...幻:事务 A 根据条件查询得到了 N 条数据,但此时事务 B 更改或者增加了 M 条符合事务 A 查询条件的数据,这样当事务 A 再次进行查询的时候发现会有 N+M 条数据,产生了幻

    81150

    mysql常用配置注意项与sql优化

    ANALYSE();   根据建议修改表字段定义 注意:此处建议知识针对表中数据,请合理取舍 测试环境 设置:   模拟真实场景数据,放大 xxx 倍,作为上线一段时间后的业务数据预期值 统计数据量以配置缓冲区大小...-s ar -t 20 /data/log/mysql/slow_query.log #得到平均访问次数最多,并且里面含有ttt字符的20条sql mysqldumpslow -s ar -t 20...405659.说明要分析的sql日志太大了,请拆分后再分析 拆分的命令为: tail -10000 /data/log/mysql/slow_query.log>/data/log/mysql/slow_query...SET GLOBAL general_log=1 SET GLOBAL log_output='FILE'; 可以通过explain 解析执行对应的慢查询,通过调整表结构、调整索引、查询语句等常规方式优化查询...--query=/root/mysql/query.sql --engine=innodb --number-of-queries=5000

    81340

    数据库MySQL-优化配置参数

    3、优化配置参数- MySQL配置文件优化 1、MySQL配置文件修改 Mysql可以通过启动时指定参数和使用配置文件两种方法进行配置,在大多数情况下配置文件位于/etc/my.cnf 或者是 /etc.../mysql/my.cnf在Windows系统配置文件可以是位于C://windows//my.ini文件,MySQL查找配置文件的顺序可以通过以下方法获得。...2、MySQL配置文件-常用参数说明 1、连接请求的变量 1、max_connections MySQL的最大连接数,增加该值增加mysqld 要求的文件描述符的数量。...当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机缓存区。进行排序查询时,MySQL会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。...如果调高该值,MySQL同时将增加heap表的大小,可达到提高联接查询速度的效果,建议尽量优化查询,要确保查询过程中生成的临时表在内存中,避免临时表过大导致生成基于硬盘的MyISAM表。

    7.3K30

    Mysql、不可重复读、幻

    Mysql中常用的InndDB是支持并发事务的,也就是能够在同一时间允许多个事务对数据库进行操作,那么问题来了,如果一个事务在写数据,另一个事务要读数据会发生什么;如果一个事务在写数据,另一个事务也要写又会发生什么...具体来说,这就有可能产生脏、不可重复读和幻。事务是逻辑上的一组操作,要么全部执行,要么全部不执行脏一个事务读取到了另一个未提交事务修改的数据。...事务隔离级别为了解决上面问题,Mysql为我们提供了4种事务隔离级别来解决。隔离级别逐渐上升,性能逐渐下降。...Mysql的默认隔离级别,避免了“脏读取”和“不可重复读取”的情况,但不能避免“幻”。Serializable (串行化):一个事务处理的时候,其他事务都等着。...的时候加共享锁,也就是其他事务可以并发,但是不能写。写的时候加排它锁,其他事务不能并发写也不能并发。这样“脏”、“不可重复读”、“幻”都能避免了,但此隔离级别性能最低。

    15410

    MySQL数据库高并发优化配置

    在Apache, PHP, mysql的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分。对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接 影响到论坛的速度和承载量!...下面我们了解一下MySQL优化的一些基础,MySQL优化我分为两个部分,一是服务器物理硬件的优化,二是MySQL自身(my.cnf)的优化。...二、 MySQL自身因素 当解决了上述服务器硬件制约因素后,让我们看看MySQL自身的优化是如何操作的。对MySQL自身的优化主要是对其配置文件 my.cnf中的各项参数进行优化调整。...由于my.cnf文件的优化设置是与服务器硬件配置息息相关的,因而我们指定一个假想的服务器硬件环境: 下面,我们根据以上硬件配置结合一份已经优化好的my.cnf进行说明: #vim /etc/my.cnf...query_cache — 如果你的应用程序有大量,而且没有应用程序级别的缓存,那么这很有用。不要把它设置太大了,因为想要维护它也需要不少开销,这会导致MySQL变慢。

    3.7K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券