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