SQL 调优
文章平均质量分 78
sql 优化
forward93124
阳光下奔跑,累了就睡觉,醒了就微笑
展开
-
MySQL - 深入理解MySQL索引底层数据结构与算法
数据结构原创 2022-08-06 23:07:36 · 206 阅读 · 1 评论 -
性能优化 --- SQL优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: > select id from t where num is null >> 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:>> select id from t where ......原创 2022-07-27 22:44:59 · 156 阅读 · 0 评论 -
MySql 优化
一、Mysql如何实现优化:数据库设计合理化(3F) 添加索引(普通索引、主键索引、唯一索引、全文索引)原创 2021-06-21 17:53:18 · 74 阅读 · 0 评论 -
MySql-G-性能优化(六)
一、查询优化1)永远小表驱动大表EXISTSSELECT ...FROM table WHERE EXISTS(subquery)该语法可以理解为:将主查询的数据,放到子查询中做条件验证,根据验证结果(true或false)来决定主查询的数据结果是否得以保留。提示1.EXISTS(subquery)只返回 true 或 false,因此子查询中的 SELECT * 也可以是 SELECT 1 或其他,官方说法是实际执行时会忽略 SELECT 清单,因此没有区别。2.EXIS.原创 2022-04-05 23:50:27 · 627 阅读 · 0 评论 -
MySql-G-性能优化(五)
一、索引性能如何达到最优?1)全值匹配我最爱-> 查询匹配与索引结构顺序一致,不违背高效sql的最佳左前缀法则,不跳过索引中间任何列,2)最佳左前缀法则 如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最左前列开始并且 不跳过索引中的列。例如:建复合索引,c1、c2、c3,按索引的顺序进行查询,不跳过c1或c2直接查c33)不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描4)存储引擎不能使用索引中范围...原创 2022-04-05 22:41:12 · 629 阅读 · 0 评论 -
MySql-G-性能优化(四)
一、性能分析MySql Query OptimizerMySql常见瓶颈CPU :CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据的时候 IO:磁盘I/O瓶颈发生在装入数据远大于内存容量的时候 服务器硬件的性能瓶颈:top,free,iostat和vmstat来查看系统的性能状态 Explain(执行计划)Explain + SQL语句使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySql是如何处理你的SQL语句的。分析你的...原创 2022-04-05 12:43:15 · 927 阅读 · 0 评论 -
Mysql-G-性能优化(三)
一、什么是索引索引 (Index) 是帮助Mysql高效获取数据的数据结构。可以理解为“排好序的快速查找数据结构” 数据本身之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。下图就是一种可能的索引方式示例:为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在一定的复杂度内获取到相应数据,从而快原创 2022-04-03 23:41:09 · 647 阅读 · 0 评论 -
Mysql-G-sql 性能优化(二)
一、sql性能下降的原因查询语句写的比较差 索引失效:a.单值索引、b.复合索引 关联查询太多join(设计缺陷或不得已的需求) 服务器调优及各个参数设置(缓冲、线程数等)二、常见的join查询 1.左连接 SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key 2.右连接SEL...原创 2022-04-03 19:17:21 · 447 阅读 · 0 评论 -
Mysql-G-数据库优化
对于MySQL层优化我一般遵从五个原则:减少数据访问: 设置合理的字段类型,启用压缩,通过索引访问等减少磁盘IO 返回更少的数据: 只返回需要的字段和数据分页处理 减少磁盘io及网络io 减少交互次数: 批量DML操作,函数存储等减少数据连接次数 减少服务器CPU开销: 尽量减少数据库排序操作以及全表查询,减少cpu 内存占用 利用更多资源: 使用表分区,可以增加并行操作,更大限度利用cpu资源总结到SQL优化中,就三点:最大化利用索引; 尽可能避免全表扫描; 减少无效数据...原创 2021-10-09 15:48:52 · 88 阅读 · 0 评论