首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏蝉沐风的码场

    MySQL优化5个维度

    面试官如果问你:你会从哪些维度进行MySQL性能优化?你会怎么回答? 所谓的性能优化,一般针对的是MySQL查询的优化。 SQL查询的环节 下面从5个角度介绍一下MySQL优化的一些策略。 image-20220405204100602 1. 连接配置优化 处理连接是MySQL客户端和MySQL服务端亲热的第一步,第一步都迈不好,也就别谈后来的故事了。 既然连接是双方的事情,我们自然从服务端和客户端两个方面来进行优化喽。 ,还为我们提供了慢日志查询的工具mysqldumpslow,为了演示这个工具,我们先构造一条慢查询: mysql> SELECT sleep(5); 然后我们查询用时最多的1条慢查询: [root@iZ2zejfuakcnnq2pgqyzowZ 因此针对业务逻辑适当做一定程度的冗余也是一种比较好的优化技巧。 5.

    65710编辑于 2022-08-22
  • 来自专栏侯哥的Python分享

    Mysql高级5-SQL优化

    into table tb_user 是将文件中的数据,插入到tb_user表中     说明4:fields terminated by ',' 是说每个字段之间的数据是使用','分割的     说明5: 效率同样比较高   总结: 在分组操作时,可以通过索引来提高效率 分组操作时,索引的使用也满足最左前缀法则 五、limit优化   account_transaction表数据量展示 mysql> 排序钱2000002条记录,但是仅仅需要返回200001-20002的记录,前2000000条记录丢弃,查询排序的代价非常大 查询优化 mysql> select a.* from account_transaction 官方针对大数据量的分页查询给出的方案是,建议使用覆盖查询加子查询形式进行优化     说明5:该插叙的子查询:select id from account_transaction order by id count的几种用法 count(*):       InnoDB引擎并不会把全部的字段取出来,而是专门做了优化,不取值,服务层直接按行进行累加,mysql 对count(*)做了优化

    55630编辑于 2023-08-02
  • 来自专栏AustinDatabases

    PolarDB MySQL SQL 优化指南 (SQL优化系列 5

    PolarDB for MySQL 云原生数据库的SQL优化,这集一定有人说,和MySQL优化有区别吗?你把那个吗去了,一样我写他做什么。 那么在掌握了MySQL的基本SQL优化手段这个咱们不提了,咱们今天只说PolarDB for MySQL 自己的优化方式。 第二个如何优化PolarDB for MySQL的查询方面的参数。这里我们先列出一些参数,然后我们在用案例去讲 PolarDB 独有的优化方式。 --TTL P-MySQL SQL优化案例,反观MySQL不死没有天理 MySQL 条件下推与排序优化实例--MySQL8.035 云数据库厂商除了卷技术,下一个阶段还可以卷什么? (译) MySQL 8 SQL 优化两则 ---常见问题 MySQL SQL优化快速定位案例 与 优化思维导图 "DBA 是个der" 吵出MySQL主键问题多种解决方案 MySQL 怎么让自己更高级-

    9010编辑于 2026-03-12
  • 来自专栏全栈程序员必看

    mysql的sql语句优化5种方式_MySQL数据库优化

    2、添加索引 3、更改索引顺序 4、去掉in 5、小结 四、双表sql优化 1、建表语句 2、左连接查询 3、小结 五、避免索引失效的一些原则 六、一些其他的优化方法 1、exist和in 2、order 5、联合索引,但其中一个条件是 > 6、联合索引,order by where和order by一起使用时,不要跨索引列使用。 三、单表sql优化 1、删除student表中的联合索引。 5、小结 保持索引的定义和使用顺序一致性; 索引需要逐步优化,不要总想着一口吃成胖子; 将含in的范围查询,放到where条件的最后,防止索引失效; 四、双表sql优化 1、建表语句 CREATE TABLE 底层觉得sql写的太差了,mysql加了个缓存,进行优化了。 )MySQL中的sleep: select sleep(5); (5)查看执行时间超过阈值的sql: show global status like '%slow_queries%'; 八、慢查询日志

    2.2K40编辑于 2022-09-24
  • 来自专栏IT技术分享社区

    MYSQL优化技巧:5 大步骤 + 10 个案例

    where a = 1 and b in (1, 2) order by c;如果走idx1,那么是type为range,如果走idx2,那么type是ref;当需要扫描的行数,使用idx2大约是idx1的5倍以上时 enabled=on"; set optimizer_trace_max_mem_size=1000000; select * from information_schema.optimizer_trace; 5、 mobile是字符类型,使用了数字,应该使用字符串匹配,否则MySQL会用到隐式替换,导致索引失效。 ,如果没有优化的,有如下两种优化方式: 一种是把上一次的最后一条数据,也即上面的c传过来,然后做“c < xxx”处理,但是这种一般需要改接口协议,并不一定可行。 案例5、范围查询阻断,后续字段不能走索引 索引 KEY `idx_shopid_created_status` (`shop_id`, `created_at`, `order_status`) SQL

    80220编辑于 2022-05-24
  • 来自专栏蝉沐风的码场

    5MySQL优化技巧,你一定用的上

    面试官如果问你:你会从哪些维度进行MySQL性能优化?你会怎么回答?所谓的性能优化,一般针对的是MySQL查询的优化。 图片下面从5个角度介绍一下MySQL优化的一些策略。图片1. 连接配置优化处理连接是MySQL客户端和MySQL服务端亲热的第一步,第一步都迈不好,也就别谈后来的故事了。 ,只有知道MySQL中有哪些慢查询我们才能针对性地进行优化。 mysqldumpslow,为了演示这个工具,我们先构造一条慢查询:mysql> SELECT sleep(5);然后我们查询用时最多的1条慢查询:[root@iZ2zejfuakcnnq2pgqyzowZ 因此针对业务逻辑适当做一定程度的冗余也是一种比较好的优化技巧。5.

    1.3K203编辑于 2022-08-17
  • 来自专栏devops_k8s

    Mysql优化

    为什么优化 为了获得成就感? 为了证实比系统设计者更懂数据库? 为了从优化成果来证实优化者更有价值? no 但通常事实证实的结果往往会和您期待相反! 优化有风险,涉足需谨慎! 优化风险 1 . 对于优化来说解决问题而带来的问题控制在可接受的范围内才是有成果。 4 . 保持现状或出现更差的情况都是失败! 5 . 稳定性和业务可持续性通常比性能更重要! 6 . 优化不可避免涉及到变更,变更就有风险! 7 . 优化使性能变好,维持和变差是等概率事件! 8 . 优化不能只是数据库管理员担当风险,但会所有的人分享优化成果! 9 . 这个阶段,需要我们DBA深入业务,或者要和开发人员\业务人员配合实现 优化,最根本的是"优化"人; Mysql参数优化测试(8c32g) 服务器配置 image.png image.png time > 一共有10个索引读取请求,有2个请求在内存中没有找到直接从硬盘中读取索引 控制在 5%以内 。

    1.9K62发布于 2021-06-21
  • 来自专栏Lambda

    mysql优化

    服务器配置文件优化 1. 表空间占用大 5. 开启慢查询日志,设置阔值,比如超过5s的就是慢SQL,并将其抓取出来 3. 使用explain+慢sql分析 4. show profile 查询SQL在Mysql服务器里面的执行细节和生命周期情况 5. 运维经理 DBA,进行数据库服务器的参数调优。 查询优化: 1.

    1.3K20编辑于 2022-04-13
  • 来自专栏云计算linux

    MySQL优化

    15 MySQL优化 数据库性能优化看起来只牵扯到数据库,但其实范围涉及极广,从计算机和网络硬件到操作系统,网络设计到安全,从各种软件再到数据库本身,性能优化从来都不是单一的,而是一个整体。 在进行MySQL优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL优化器能够按照预想的合理方式运行而已。 存储方面: 根据存储数据种类的不同,选择不同的存储设备; 配置合理的RAID级别(raid5、raid10、热备盘); 对与操作系统来讲,不需要太特殊的选择,最好做好冗余(raid1)(ssd innodb_log_buffer_size # 100M以下 innodb_log_file_size # 100M 以下 innodb_log_files_in_group # 5个成员以下 5. 锁定表 尽管事务是维护数据库完整性的一个非常好的方法,但却因为它的独占性,有时会影响数据库的性能,尤其是在很大的应用系统中。

    46210编辑于 2024-12-07
  • 来自专栏Howl同学的学习笔记

    Mysql优化

    InnoDB MyISAM 事务处理 支持 不支持 全文搜索 不支持 支持 SELECT ,UPDATE,INSERT,DELETE 大量INSERT或UPDATE | DELETE 表一行一行的删除 大量SELECTDELETE | DELETE表先DROP再重建 AUTO_INCREMENT 自增计数器仅存储在主内存中 锁 表锁,行级锁 表锁 外键 支持 不支持 行数 扫描表来计算 保存行数 存储 把数据和索引存放在表空间里面 表被存放在三个文件 跨平台 跨平台可直接拷贝使用 跨平台很难直接拷贝 压

    1.1K40发布于 2020-03-10
  • 来自专栏allsmallpi博客

    MySQL优化

    使用enum、char而不是varchar (4)尽可能使用not null定义字段 (5)尽量少用text,非用不可最好分表 三、选择合适的索引列 (1)查询频繁的列,在where,group by 看到这个的时候,查询就需要优化了     -Using temporary 使用了临时表。看到这个的时候,也需要优化 (3)PROFILING分析SQL语句 1.开启profile。 包括执行状态、是否锁表等 mysql> SHOW processlist; (4)PROCEDURE ANALYSE()取得建议 通过分析select查询结果对现有的表的每一列给出优化的建议 mysql > SELECT column_name FROM table_name PROCEDURE ANALYSE(); (5)OPTIMIZE TABLE回收闲置的数据库空间 mysql> OPTIMIZE ; 五、定位慢查询 MySQL慢查询 六、分区 MySQL分区和分表 七、配置优化 MySQL配置优化

    93520发布于 2021-02-25
  • 来自专栏友弟技术工作室

    mysql优化

    上篇文章是关于mysql优化的,那个内容是我大学的时候学习的笔记,最近学习发现一些比较好的内容,在这里分享给大家。 版权源于网上。 工作中使用最多的就是MySQL, 但是mysql优化也就是通过建索引以及缓存数据来优化的。使用explain比较多。对于其他的优化技能没有使用过。 ? 1、硬件层相关优化 请一个DBA团队优化,还没有全部把机械硬盘换成ssd来的快。所以,底层硬件也是很重要的。 并且闭阵列预读策略,基本上是鸡肋,用处不大; 4、尽可能选用RAID-10,而非RAID-55、使用机械盘的话,尽可能选择高转速的,例如选用15KRPM,而不是7.2KRPM的盘,不差几个钱的; 层相关优化 3.1、关于版本选择 官方版本我们称为ORACLE MySQL,这个没什么好说的,相信绝大多数人会选择它。

    2.1K70发布于 2018-04-25
  • 来自专栏开发笔记

    MySQL优化

    SQL优化发生在业务量达到一定规模的时候 目的是优化SQL的执行效率 MySQL 优化 优化范围 硬件资源 操作系统参数,数据库参数配置 SQL语句,索引优化 SQL优化 数据库设计优化【规范,前期设计 exists(select 1 from b where num=a.num) 索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率(5) 索引目的 提高查询效率 【类比字典和借书】 如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。 ----------------2019/10/9 参考《MySQL DBA工作笔记》中杨建荣老师举得一个非常形象的例子: “比如某公司里面有一个开发小组,组长管理一些程序员,自己也参与开发工作”——B MySQL默认使用B+Tree索引 索引本身也很大,所以存储在磁盘中,需要加载到内存中执行。 故:索引结构优劣标准:磁盘I/O次数 BTree是为了充分利用磁盘预读功能而创建出来的一种数据结构。

    1.3K40发布于 2020-01-22
  • 来自专栏后端码事

    MYSQL 优化

    深度应用者则着眼于从改进Mysql软件自身层面,或者开发另外的数据库引擎和硬件应用来拓展Mysql的生态系统。 数据库层面优化 影响数据库应用性能的最重要因素其设计的合理性: 表的结构是否合适? 如果基础的优化指引无法解决性能问题,则可以通过执行计划调整索引,查询条件,联合条件等(执行计划优先)。 调整MySQL缓存使用的内存大小及属性。 -> b>5 AND b=c AND a=5   (B>=5 AND B=5) OR (B=6 AND 5=5) OR (B=7 AND 5=6)-> B=5 OR B=6   SELECT * FROM IS NULL 优化 MySQL对col_name IS NULL 的优化和对col_name = constant_value的优化方式一样。 MySQL也可以优化类似col_name = expr OR col_name IS NULL这样的组合。这种形式通常见于子查询。

    3K40发布于 2020-09-11
  • 来自专栏全栈程序员必看

    MySql优化

    mysql多表连接查询的模式 左表和右表的共有部分,即内连接 SELECT fileds FROM TableA AS A INNER JOIN TableB AS B ON A.key1 = 索引的概念 官方定义:索引是帮助mysql高效获取数据的数据结构。划重点:数据结构。 5. 删除索引 DROP INDEX indexName ON tableName; 其中,indexName是索引名称,tableName是表名,表示删除指定表的指定索引。 6. 查看索引 SHOW INDEX FROM tableName\G 其中,tableName是表名,\G是为了显示格式优化。 7. INSER、DELETE、UPDATE操作时,不仅要保存数据,还要保存因更新表带来的索引信息变化 索引并不是随便加,也不是越多越好,过多的或者不恰当的索引,反而会降低数据库的效率,一般一个表不应超过5个索引

    90630编辑于 2022-08-05
  • 来自专栏编程之禅

    MySQL优化

    MySQL优化 MySQL 优化方案 对于 **MySQL** 的性能优化,大部分情况下都是想减少查询所消耗的时间;而一个查询是由很多个环节组成,那么就需要从每个环节消耗时间进行入手。 配置优化(连接) 当客户端连接到服务端有可能服务端连接数不够导致应用程序获取不到连接而报出 **Mysql: error 1040: Too many connections**** **的错误。 条 SQL 语句 mysqldumpslow -s t -t 5 -g 'select' /var/lib/mysql/localhost-slow.log Count:代表这条 **SQL** 语句执行了多少次 中提供了一个执行计划工具,通过该工具可以模拟优化执行 **SQL** 查询语句的过程得到 **MySQL**  是怎么对一条 **SQL** 语句的过程并且可以对其进行分析。 通过模拟优化器执行 **SQL** 查询语句的过程得到 **MySQL** 是怎么处理一条 **SQL** 语句的并可以对其进行语句或表的性能瓶颈。

    94920编辑于 2022-05-10
  • 来自专栏devops_k8s

    Mysql优化

    为什么优化 为了获得成就感? 为了证实比系统设计者更懂数据库? 为了从优化成果来证实优化者更有价值? no 但通常事实证实的结果往往会和您期待相反! 优化有风险,涉足需谨慎! 优化风险 1 . 对于优化来说解决问题而带来的问题控制在可接受的范围内才是有成果。 4 . 保持现状或出现更差的情况都是失败! 5 . 稳定性和业务可持续性通常比性能更重要! 6 . 优化不可避免涉及到变更,变更就有风险! 7 . 优化使性能变好,维持和变差是等概率事件! 8 . 优化不能只是数据库管理员担当风险,但会所有的人分享优化成果! 9 . 避免业务逻辑错误,避免锁争用.这个阶段,需要我们DBA深入业务,或者要和开发人员\业务人员配合实现优化,最根本的是"优化"人; Mysql参数优化测试(8c32g) 服务器配置 time用于计时 dd > 一共有10个索引读取请求,有2个请求在内存中没有找到直接从硬盘中读取索引 控制在 5%以内 。

    1.4K30编辑于 2022-05-09
  • 来自专栏码客

    Mysql优化

    =0; set global slow_query_log=1; 连接优化 常见的连接参数 jdbc:mysql://localhost:3306/test? 此优化主要针对innodb引擎 创建慢查询日志文件 cd /var/log/ mkdir mysql cd mysql vi mysql-slow.log 打开配置文件 vi /etc/my.cnf slow_query_log = 1 slow-query-log-file = /var/log/mysql/mysql-slow.log long_query_time = 5 # 调整innodb_buffer_pool_size 定期使用pt-index-usage工具检查并删除使用频率很低的索引 5)使用pt-online-schema-change来完成大表的ONLINE DDL需求 6)有时候MySQL会使用错误的索引 索引 参见:Mysql优化-索引 Show Profile【重点】 是什么 mysql提供可以用来分析当前会话中语句执行的资源消耗情况。

    1.1K20发布于 2019-10-22
  • 来自专栏大大刺猬

    MYSQL优化

    本文主要参考官网的优化 https://dev.mysql.com/doc/refman/5.7/en/optimization.html优化SQL语句没得完美的优化方案, 要么牺牲写性能(多数情况是这样 where a>10 and 5=5 后面这个5=5就没得必要, 白白浪费数据库的计算能力(虽然浪费得不多)having合并到where里面, 如果没使用count() min()等函数的话例子 嵌套循环连接算法Nested-Loop Join Algorithms嵌套连接优化mysql的cross join 等价于 inner join (标准sql不是这样的)###(左右)外连接避免全表扫描优化 ##外部锁外部锁定是使用文件系统锁定来管理MyISAM多个进程对数据库表的争用 innodb不涉及mysql服务器的优化系统优化:尽量不要使用swap, 性能确实比不上内存, (内存不够的除外)避免 可以在0.17秒内计算 500 0000次简单的加法, (注意是跟cpu频率相关, 本结果为i5-5300u) 也可以用mysqlslap来压测 https://dev.mysql.com/doc/

    1.3K20编辑于 2022-11-09
  • 来自专栏MySQL入坑记

    5分钟搞懂MySQL - 索引下推优化

    小伙伴想精准查找自己想看的MySQL文章?喏 → MySQL江湖路 | 专栏目录   对于长期与MySQL同流合污的朋友们来说,或许,“索引下推优化”这个词并不陌生,嗯。。 经常听到,但是MySQL的这个“优化”到底优化了啥?就懵懵懂懂了,反正不是公司优化我就行了是吧。。 来,让我们继续快乐的卷下去~   其实呢,这个索引下推优化起源于MySQL5.6版本,全名叫:“索引条件下推”,英文名字 Index Condition Pushdown,我们叫他 ICP吧,ICP 如下,在表 T 创建联合索引 index(name,age) select * from T where name like '提莫%' and age = 100; MySQL没有索引下推优化时:    聪明~ 这确实是5.6之前的一种处理方式,但缺点也很明显,比如字段过滤数据能力降低,没了免费午餐(排序)等~ MySQL引入了ICP优化后;   如图,在索引内部取到name结果之后(步骤3),步骤

    61620发布于 2021-10-13
领券