![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
橘桔菊
人间荒唐古怪,还好我们可爱
展开
-
Mysql高级性能优化之锁(十三)
锁 概念 在计算机中,协调多个进程或线程并发访问某一资源的一种机制; 在数据库中,除了传统的计算资源(I/O,CPU,RAM等),数据也是一种供许多用户共享访问的资源; 如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素。 在购买商品的时候,商品库存只有一个,两人同时购买,这个时候就涉及锁的一个概念,会用到事务,先从库存表中取出物...原创 2020-04-27 21:34:13 · 149 阅读 · 0 评论 -
Mysql高级性能优化之排序与分组优化(十)
排序与分组优化 using filesort/using temporary详情见Mysql高级性能优化之Explain(八)12、Extra 在使用order by,经常出现using filesort: ①索引做排序时 ②使用order by排序时,如果没有按照索引顺序 ③当使用*时,即使order by使用了全部索引 ④当索引字段为常量时,可以当作是存在索引的 ⑤使用排序一升一降 使用gro...原创 2020-04-23 16:30:23 · 583 阅读 · 0 评论 -
Mysql高级性能优化之小表驱动大表及max/count/in/exists(十二)
小表驱动大表及max/count/in/exists 小表驱动大表: 小的数据集驱动大得数据集; 类似嵌套循环: for(int i =5;.....){ for(int j=1000;....){ } } 如果晓得循环在外层,对于数据库连接来说就只连接5次,进行1000次操作; 如果1000在外,则需要进行1000次数据库连接,浪费资源,增加消耗。 in与exists: 1、exist...原创 2020-04-22 11:45:32 · 478 阅读 · 0 评论 -
Mysql高级性能优化之索引相关的面试题(十一)
索引相关的面试题 说出以下语法使用索引的情况 假设建立复合索引(a、b、c),说下以下索引的使用情况: sql条件语句 索引的使用情况 where a=4 a where a=4 and b=6 ab where a=4 and c=5 and b=6 abc where b=4 or b=5 无 where a=4 and c=6 a where a=4 an...原创 2020-04-22 10:42:45 · 236 阅读 · 0 评论 -
Mysql高级性能优化之索引失效(九)
索引失效 示例索引创建: 1、全值匹配(最好) 2、最佳左前缀法则 如果索引的多列,要遵守最左前缀法则,指的就是从索引的最左列开始,并且不跳过索引中的列 跳过第一个,索引失效;跳过前两个,索引失效;跳过中间一个,只有第一个生效; 顺序可以乱。 3、不在索引上做任何操作 计算、函数、类型转换,都会导致索引失效转向全表扫描; 4、范围条件右边的索引失效 5、mysql在使用不等于(!=或者...原创 2020-04-20 16:49:06 · 107 阅读 · 0 评论 -
Mysql高级性能优化之Explain(八)
Explain 使用方法:explain sql语句; 分析包含信息: 1、id: (1)select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 (2)值的三种情况: ①id相同:执行顺序由上到下 ②id不同: 如果是子查询,id序号会递增,id越大优先级越高,优先被执行 ③id相同不同,同时存在: 可以认为是一组,从上往下顺序执行; 在所有组中,id值越大,...原创 2020-04-14 18:07:30 · 223 阅读 · 0 评论 -
Mysql高级性能优化之性能分析(七)
表设计准则 满足关系数据库的三范式 1NF(关系模式的基本要求) 指数据库表的每一列都是不可分割的基本数据项,同一列种不能有多个值 2NF 要求数据库表中的每个实例或行必须可以被唯一的区分(设置主键) 3NF 要求一个数据库表中不包含已在其他表中包含的非主关键字信息(两张表不要重复的字段,通常都是设置外键) 大表拆小表,有大数据的列单独拆成小表: 1、在一个数据库中,...原创 2020-04-14 15:54:35 · 257 阅读 · 0 评论 -
Mysql高级性能优化之索引(六)
索引 什么是索引: 帮助Mysql高效获取数据的数据结构,排好序的快速查找数据,类似与新华字典的目录; 为什么要建立索引: 1、提高查询效率: 没有排序之前一个一个的找,排序后,直接定义到想要的位置 2、排好序的快速查找数据结构————>索引 优势与劣势: 优势 劣势 提高数据检索速度,降低数据库的IO成本 索引本身很大,往往以文件的形式存储在磁盘上 通过索引对数据进行排...原创 2020-04-08 16:14:52 · 139 阅读 · 0 评论 -
Mysql高级性能优化之优化分析(五)
优化分析 **sql性能下降的表现:**执行时间长,等待时间长 性能下降的原因: 1.查询语句写的不好:各种连接,子查询,导致使用不了索引或者没有建立索引; 2.建立的索引失效 3.关联查询太多join 4.服务器调优及个配置参数导致:设置不合理,比例不恰当,也会导致性能下降,sql变慢 ...原创 2020-04-07 13:39:39 · 84 阅读 · 0 评论 -
Mysql高级性能优化之Join连接(四)
Join连接 1.内连接: 图示: 作用:查询两张表的共有部分; 语句:SELECT FROM tableA a INNER JOIN tableB b ON a.key=b.key; 2.左连接: 图示: 作用:把左边表的内容全部查出,右边表只查出满足条件的记录; 语句:SELECT FROM tableA a LEFT JOIN tableB b ON a.key=b.key; 3.右...原创 2020-04-07 11:54:24 · 165 阅读 · 0 评论 -
Mysql高级性能优化之sql执行顺序(三)
sql执行顺序 编写sql顺序: 读取sql顺序: 先对多表进行关系(from),根据条件找到对应的数据(on),在符合条件的数据基础上,在进行where条件过滤,对过滤出来的数据进行分组(group by),分组后,使用having再次对数据进行过滤,对最终过滤出来的数据进行排序(order by),使用limit获取记录显示出来。 ...原创 2020-04-03 17:59:48 · 90 阅读 · 0 评论 -
Mysql高级性能优化之存储引擎(二)
存储引擎 概念: 1、MYSQL中的数据用各种不同的技术存储在文件(或内存中); 2、每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的功能和能力; 3、选择不同的技术,能够获得额外的速度或者功能,从而改善你的应用的整体功能;(如果你在研究大量临时数据,可以选择内存存储引擎(能够在内存中存储所有的表格数据);如果需要支持事务处理的数据库(确保食物处理不成功时数据的回退能力),选择...原创 2020-04-03 17:46:30 · 152 阅读 · 0 评论 -
Mysql高级性能优化之逻辑架构(一)
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。 MySQL逻辑架构: 总体分层: 1、连接层: 与客户端进行连接服务,主要完成了一些类似连接处理、授权认证及相关的安全方案。(在该层上引入了连接池的概念)。 2、服务器层: 提供核心的服务功能,所有跨存储引擎的功能都在这一层实现;(完成缓存的查询、sql的分析和优...原创 2020-04-02 17:18:05 · 505 阅读 · 0 评论