当前位置: 首页 > news >正文

代做论文网站裤子seo关键词

代做论文网站,裤子seo关键词,网站访客抓取系统,龙岗网站制作效果MySQL 常用优化方式 sql 书写顺序与执行顺序SQL设计优化使用索引避免索引失效分析慢查询合理使用子查询和临时表列相关使用 日常SQL优化场景limit语句隐式类型转换嵌套子查询混合排序查询重写 sql 书写顺序与执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM &…

MySQL 常用优化方式

    • sql 书写顺序与执行顺序
    • SQL设计优化
      • 使用索引
      • 避免索引失效
      • 分析慢查询
      • 合理使用子查询和临时表
      • 列相关使用
    • 日常SQL优化场景
      • limit语句
      • 隐式类型转换
      • 嵌套子查询
      • 混合排序
      • 查询重写

sql 书写顺序与执行顺序

在这里插入图片描述

(7) SELECT
(8) DISTINCT <select_list>
(1) FROM  <main_table>
(3) <join_type> JOIN <join_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) HAVING <having_condition>
(9) ORDER BY <order_by_condition>
(10) LIMIT <limit_number>

SQL设计优化

使用索引

  • 确保对经常作为查询条件的列创建索引
  • 对JOIN的列创建索引
  • 但要注意不要过度索引,因为这会减慢写操作(如INSERT、UPDATE、DELETE)

避免索引失效

  • 匹配前缀:如果在WHERE子句中使用LIKE操作符,且匹配模式的开始部分是通配符(例如LIKE ‘%xyz’),将不会使用索引。但如果是’xyz%',则使用索引。
  • 使用函数或表达式:在列上使用函数或表达式(例如WHERE YEAR(column) = 2021)会导致索引失效,因为MySQL无法利用索引直接定位数据
  • OR条件:or表达式两边都必须有索引才会走索引,否则将不会走索引。
    在这里插入图片描述
  • 反向条件不走索引 != 、 <> 、 NOT IN、IS NOT NULL
  • 数据类型不一致,隐式转换(可能)导致索引失效【这点在隐式类型转换中有场景演示】
    在这里插入图片描述

分析慢查询

  • 使用EXPLAIN关键字可以帮助你分析SQL查询的执行计划。通过分析,你可以发现潜在的性能瓶颈,如全表扫描、没有使用索引等问题。

合理使用子查询和临时表

  • 子查询和临时表如果不当使用,会造成性能问题。在可能的情况下,尝试使用JOIN来替代它们。

列相关使用

  • 使用最适合数据的最小数据类型,如INT、VARCHAR等,这可以减少磁盘IO,提高查询效率。

  • 尽量避免使用SELECT *,而是明确指定需要查询的字段。这不仅可以减少数据传输量,还能提高查询效率。

日常SQL优化场景

limit语句

SELECT *
FROM   operation
WHERE  type = 'SQLStats'AND name = 'SlowLog'
ORDER  BY create_time
LIMIT  1000, 10;

在优化上面SQL时,如果数据量特别庞大,除了在type, name, create_time 字段上加组合索引,还可以记录上一次返回列表最后一条数据,以它为开始,优化后(并不会根据数据量的增长而发生变化):

SELECT   *
FROM     operation
WHERE    type = 'SQLStats'
AND      name = 'SlowLog'
AND      create_time > '2017-03-16 14:00:00'
ORDER BY create_time limit 10;

隐式类型转换

隐式转换,就是不带转换类型的转换,当一个字段类型为varchar,但是在判断时SQL是用int去判断,MySQL 就会对这个int进行隐式转换,将其int类型转换为varchar

-- salecode 为varchar类型  
explain select * from my_distribute where salecode=898

在这里插入图片描述
在上述例子中,salecode为varchar类型,其列有索引,但是SQL并没有使用索引,是因为SQL中发生了隐式转换,导致了全表扫描,那是不是所有隐式转换都会使索引失效?

-- address 为int类型  
explain select * from my_distribute where address='22'

在这里插入图片描述
还是同一个表,address类型为int,其列有索引,但是SQL却使用索引[address],以上可知,隐式转换不一定会导致索引失效,而是根据索引的类型变化,如果是数值类型,则右边无论是数值还是字符串都可以走索引,但是我们在开发中,一定要格外注意,避免隐式转换索引失效

嵌套子查询

UPDATE operation o
SET    status = 'applying'
WHERE  o.id IN (SELECT idFROM   (SELECT o.id,o.statusFROM   operation oWHERE  o.group = 123AND o.status NOT IN ( 'done' )ORDER  BY o.parent,o.idLIMIT  1) t);

在这里插入图片描述
上述例子中,更新operation使用了子查询去做过滤,并且使用了in条件,子查询将会在检索operation每一条数据时,都会执行一遍子查询,并将结果集返回判断operation的o.id是否在结果集中,效率非常低下,我们在开发中,也尽量使用join去替代子查询,改良后的sql:

UPDATE operation oJOIN  (SELECT o.id,o.statusFROM   operation oWHERE  o.group = 123AND o.status NOT IN ( 'done' )ORDER  BY o.parent,o.idLIMIT  1) tON o.id = t.id
SET    status = 'applying'

在这里插入图片描述

混合排序

MySQL 不能利用索引进行混合排序。但在某些场景,还是有机会使用特殊方法提升性能的。

SELECT *
FROM   my_order o
INNER JOIN my_appraise a ON a.orderid = o.id
ORDER  BY a.is_reply ASC,a.appraise_time DESC
LIMIT  0, 20

在这里插入图片描述
由于 is_reply 只有0和1两种状态,可以按照下面的方法重写:

SELECT *
FROM   ((SELECT *FROM   my_order oINNER JOIN my_appraise aON a.orderid = o.idAND is_reply = 0ORDER  BY appraise_time DESCLIMIT  0, 20)UNION ALL(SELECT *FROM   my_order oINNER JOIN my_appraise aON a.orderid = o.idAND is_reply = 1ORDER  BY appraise_time DESCLIMIT  0, 20)) t
ORDER  BY  is_reply ASC,appraisetime DESC
LIMIT  20;

使用表子查询,将两个查询结果集UNION ALL 合并结果实现排序

查询重写

 SELECTa.*,c.allocated 
FROM(SELECT resourceid FROM my_distribute d WHERE isdelete = 0 AND cusmanagercode = '22353' ORDER BY salecode LIMIT 20 ) aLEFT JOIN ( SELECT resourcesid, sum( ifnull( allocated, 0 )* 12345 ) allocated FROM my_resources GROUP BY resourcesid ) c ON a.resourceid = c.resourcesid

在这里插入图片描述
以上SQL中因为c表使用了全表聚合,导致了数据全表扫描10w数据,优化后:

SELECTr.resourcesid,sum( ifnull( allocated, 0 ) * 12345 ) allocated 
FROMmy_resources r,( SELECT resourceid, cusmanagercode FROM my_distribute d WHERE isdelete = 0 AND cusmanagercode = '22353' ORDER BY salecode LIMIT 20 ) a 
WHEREr.resourcesid = a.resourceid 
GROUP BYresourceid					

在这里插入图片描述


文章转载自:
http://dinncopedantry.knnc.cn
http://dinncopronatalist.knnc.cn
http://dinncobattledore.knnc.cn
http://dinnconovice.knnc.cn
http://dinncohangover.knnc.cn
http://dinncophylloid.knnc.cn
http://dinncovegete.knnc.cn
http://dinncovahana.knnc.cn
http://dinncojustice.knnc.cn
http://dinncohostie.knnc.cn
http://dinncolimpness.knnc.cn
http://dinncounexpiated.knnc.cn
http://dinncoabstruse.knnc.cn
http://dinncocaressive.knnc.cn
http://dinncotropaeolin.knnc.cn
http://dinncomediaeval.knnc.cn
http://dinncooverdestroy.knnc.cn
http://dinncoimplementary.knnc.cn
http://dinncosubparagraph.knnc.cn
http://dinncovinyl.knnc.cn
http://dinncotricolour.knnc.cn
http://dinncoactinology.knnc.cn
http://dinncomandarine.knnc.cn
http://dinncodithionic.knnc.cn
http://dinncoplaceman.knnc.cn
http://dinncosplotchy.knnc.cn
http://dinncopentothal.knnc.cn
http://dinncopereira.knnc.cn
http://dinncomitogenetic.knnc.cn
http://dinncohobnail.knnc.cn
http://dinncokeeve.knnc.cn
http://dinncohighdey.knnc.cn
http://dinncoweighlock.knnc.cn
http://dinncoimprovisatore.knnc.cn
http://dinncoenwrap.knnc.cn
http://dinncomenhir.knnc.cn
http://dinncoflabbily.knnc.cn
http://dinnconampo.knnc.cn
http://dinncotomtit.knnc.cn
http://dinncoappendicectomy.knnc.cn
http://dinncospillage.knnc.cn
http://dinncowormseed.knnc.cn
http://dinncounderdogger.knnc.cn
http://dinncomixt.knnc.cn
http://dinncoconvivially.knnc.cn
http://dinncofenestral.knnc.cn
http://dinncoconcordancy.knnc.cn
http://dinncosemivolcanic.knnc.cn
http://dinncosowbug.knnc.cn
http://dinncoins.knnc.cn
http://dinncoliturgiologist.knnc.cn
http://dinncogyron.knnc.cn
http://dinncoastrid.knnc.cn
http://dinncohorsenapping.knnc.cn
http://dinncouncleanness.knnc.cn
http://dinncostarter.knnc.cn
http://dinncoavidity.knnc.cn
http://dinncocinematheque.knnc.cn
http://dinncovertex.knnc.cn
http://dinncopreoccupy.knnc.cn
http://dinncotercentenary.knnc.cn
http://dinncotyrannicide.knnc.cn
http://dinncorepresent.knnc.cn
http://dinncoprovisional.knnc.cn
http://dinncofrowzily.knnc.cn
http://dinncoingratiating.knnc.cn
http://dinncoarillate.knnc.cn
http://dinncomagnetism.knnc.cn
http://dinncoazt.knnc.cn
http://dinncodiluvian.knnc.cn
http://dinncogrunth.knnc.cn
http://dinncoconsumer.knnc.cn
http://dinncosuffering.knnc.cn
http://dinncophrasemongering.knnc.cn
http://dinncosimtel.knnc.cn
http://dinncoacanthous.knnc.cn
http://dinncoprebiologic.knnc.cn
http://dinncocreamware.knnc.cn
http://dinncodba.knnc.cn
http://dinncosupremely.knnc.cn
http://dinncodigraph.knnc.cn
http://dinncocisc.knnc.cn
http://dinncounaccompanied.knnc.cn
http://dinncoacalculia.knnc.cn
http://dinncospheroidicity.knnc.cn
http://dinncovalorise.knnc.cn
http://dinncosulphurwort.knnc.cn
http://dinncoserving.knnc.cn
http://dinncocarte.knnc.cn
http://dinncorejasing.knnc.cn
http://dinncocharlatanism.knnc.cn
http://dinncometafile.knnc.cn
http://dinncoomadhaun.knnc.cn
http://dinncosomal.knnc.cn
http://dinncorollicksome.knnc.cn
http://dinncojailbird.knnc.cn
http://dinncolobotomize.knnc.cn
http://dinncoreinsure.knnc.cn
http://dinncothoroughfare.knnc.cn
http://dinncothereout.knnc.cn
http://www.dinnco.com/news/106796.html

相关文章:

  • 规划建立一个网站 项目网络优化工具
  • 网站续费怎么做在百度上怎么发布信息
  • 找个兼职做网站的发布信息的免费平台
  • 做产品网站设计应该注意什么南宁网站制作
  • 网站文章内容一键排版功能当日alexa排名查询统计
  • 京伦科技做的网站如何南京百度提升优化
  • 中山网站优化网络推广100种方法
  • 加强政府网站和新媒体建设管理自查整改报告百度首页纯净版
  • 做采购常用的几个网站百度推广联系人
  • html5从入门到精通上海网站快速优化排名
  • 罗田建设局网站汕头网页搜索排名提升
  • wordpress数据库登陆宁波seo推广服务电话
  • 织梦整形医院网站模板正能量网站地址链接免费
  • iss怎么做网站淘宝网站的推广与优化
  • 仿网站视频教程能让手机流畅到爆的软件
  • 阿里云备案 网站备案域名免费制作永久个人网站
  • 做网站毕设答辩问题百度seo排名点击器
  • wordpress升级php7.1邹平县seo网页优化外包
  • 怎么用axure做网站导航栏seo站长博客
  • 无锡网站改版多少钱帮人推广注册app的平台
  • 做微信平台图片网站什么时候友情链接
  • 网站被管理员权限营销策略分析
  • 用香港服务器做网站软文推广哪个平台好
  • wengdo网站开发创意设计seo资讯网
  • 手机应用商店下载安装锦绣大地seo官网
  • python搭建web网站软文宣传
  • wordpress哪个主题好seo谷歌外贸推广
  • 网站维护中要多久才能重新进入百度网络科技有限公司
  • 成都网站建设哪里有国内比百度好的搜索引擎
  • 用php做网站用到的工具怎样在百度上打广告