问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

提高mysql查询效率的方法有哪些

发布网友 发布时间:2022-04-22 10:46

我来回答

2个回答

懂视网 时间:2022-04-29 20:25

mysql语句查询技巧:

技巧1 比较运算符能用 “=”就不用“<>”

  “=”增加了索引的使用几率。

技巧2 明知只有一条查询结果,那请使用 “LIMIT 1”

  “LIMIT 1”可以避免全表扫描,找到对应结果就不会再继续扫描了。

技巧3 为列选择合适的数据类型

  能用TINYINT就不用SMALLINT,能用SMALLINT就不用INT,道理你懂的,磁盘和内存消耗越小越好嘛。

技巧4 将大的DELETE,UPDATE or INSERT 查询变成多个小查询

  能写一个几十行、几百行的SQL语句是不是显得逼格很高?然而,为了达到更好的性能以及更好的数据控制,你可以将他们变成多个小查询。

技巧5 使用UNION ALL 代替 UNION,如果结果集允许重复的话

  因为 UNION ALL 不去重,效率高于 UNION。

技巧6 为获得相同结果集的多次执行,请保持SQL语句前后一致

  这样做的目的是为了充分利用查询缓冲。

技巧7 尽量避免使用 “SELECT *”

  如果不查询表中所有的列,尽量避免使用 SELECT *,因为它会进行全表扫描,不能有效利用索引,增大了数据库服务器的负担,以及它与应用程序客户端之间的网络IO开销。

技巧8 WHERE 子句里面的列尽量被索引

  只是“尽量”哦,并不是说所有的列。因地制宜,根据实际情况进行调整,因为有时索引太多也会降低性能。

技巧9 JOIN 子句里面的列尽量被索引

  同样只是“尽量”哦,并不是说所有的列。

技巧10 ORDER BY 的列尽量被索引

  ORDER BY的列如果被索引,性能也会更好。

技巧11 使用 LIMIT 实现分页逻辑

  不仅提高了性能,同时减少了不必要的数据库和应用间的网络传输。

技巧12 使用 EXPLAIN 关键字去查看执行计划

  EXPLAIN 可以检查索引使用情况以及扫描的行。

技巧13 MySQL数字的取整、四舍五入、保留n位小数

更多相关免费学习推荐:mysql教程(视频)

热心网友 时间:2022-04-29 17:33

1.尽量不要在where中包含子查询;
关于时间的查询,尽量不要写成:where to_char(dif_date,’yyyy-mm-dd’)=to_char(‘2007-07-01′,’yyyy-mm-dd’);
2.在过滤条件中,可以过滤掉最大数量记录的条件必须放在where子句的末尾;
FROM子句中写在最后的表(基础表,driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有三个以上的连接查询,那就需要选择交叉表 (intersection table)作为基础表,交叉表是指那个被其他表所引用的表;
3.采用绑定变量
4.在WHERE中尽量不要使用OR
5.用EXISTS替代IN、用NOT EXISTS替代NOT IN;
6.避免在索引列上使用计算:WHERE SAL*12>25000;
7.用IN来替代OR: WHERE LOC_ID=10 OR LOC_ID=15 OR LOC_ID=20
8.避免在索引列上使用IS NULL和IS NOT NULL;
9.总是使用索引的第一个列;
10.用UNION-ALL替代UNION;
11.避免改变索引列的类型:SELECT…FROM EMP WHERE EMPNO=’123’,由于隐式数据类型转换,to_char(EMPNO)=’123’,因此,将不采用索引,一般在采用字符串拼凑动态SQL语句出现;
12.’!=’ 将不使用索引;
13.优化GROUP BY;
14.避免带有LIKE参数的通配符,LIKE ‘4YE%’使用索引,但LIKE ‘%YE’不使用索引
15.避免使用困难的正规表达式,例如select * from customer where zipcode like “98___”,即便在zipcode上建立了索引,在这种情况下也还是采用顺序扫描的方式。如果把语句改成select * from customer where zipcode>”98000″,在执行查询时就会利用索引来查询,显然会大大提高速度;
16.尽量明确的完成SQL语句,尽量少让数据库工作。比如写SELECT语句时,需要把查询的字段明确指出表名。尽量不要使用SELECT *语句。组织SQL语句的时候,尽量按照数据库的习惯进行组织。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 讲述mysql数据表几种有效优化方法 小米手机截屏在哪 女人来大姨妈不能吃什么,不能做什么 月经期间不宜吃什么 姨妈来了不能吃什么 大姨妈时不宜吃什么 两台电脑能用USB连接传输数据么? 如何通过USB数据线让两台电脑通讯传输数据 两台电脑用USB线连接,要咋弄才能互传数据? usb传输文件到电脑 两台电脑主机之间能否实现USB互联传输文件? 手机私密相册怎么查看 小米手机如何使用截屏功能? 梦见小女孩从楼上掉下来 梦见小女孩从楼上掉下,摔断了左胳膊!求解梦 梦见有小女孩从楼上坠下 梦见小女孩楼上玩耍摔死? 梦见举着小孩儿玩没接住的预兆 昨晚做梦梦到蛇,是什么预兆啊? 柿饼上的白色霜是什么东西?对人有益有害? mysql查询语句优化方法 mysql 查询语句性能和效率问题 mysql时间类型查询的效率问题 sql mysql数据库,提高mysql查询效率,及查询速度。提高网站速度 Mysql多字段大表的几种优化方法 mysql查询优化器应该怎么使用 mysql中text类型字段对查询效率的影响有多大? MySQL 随机函数获取数据速度和效率分析 转转延长收货能延迟多长时间 转转延长收货用不了 转转上面几天自动确认收货? 转转优品怎么延长物流收货时间,快要到自动确认收货时间了,东西还没 转转,卖家怎么帮我延长收货时间? 离确认收货超时结束还剩1天时能延长收货时间吗 卖家设置了10天自动收款怎么延长收货时间? 鲁提辖拳打镇关西原文、翻译及赏析 梦见大蟒蛇咬我右膀子,然后我将七寸剁断分成两截? 寸寸地剁去是什么短语? 是谁发明了年这个东西直接将我们的生命寸寸地剁去联系上下文体会短文第五自然? LG34UM56怎么样?LG34UM56好吗