Python中如何优化SQL语句?
编程人员一定不陌生SQL语句吧,在我们日常写项目过程中,或多或少都会使用到SQL,SQL主要功能有增删改查,其中最常见的就是查询了,因此SQL语句的性能就变得至关重要,Python中如何优化SQL语句?请看下文:
一、分解SQL
当我们遇到一个较复杂的SQL时,可以选择将它拆分成多个简单的SQL,这样既能保证处理结果,SQL也更简短了。
在面对超级复杂SQL语句时,性能提升尤为明显,推荐分解为小查询来进行优化,不过在应用设计时,如果一个查询能解决问题且不会产生性能问题,这是完全没问题的。
分解可以使缓存更高效,可以很方便地缓存单表查询结果对应的结果,执行单个查询也可以减少表锁的竞争,在程序应用层做关联,更容易对数据库进行拆分,也更容易做到高性能和可扩展。
二、查询切分
遇到结果集很大的查询,我们可以采用“分而治之”的思想,即将大查询切分为小查询,每个查询功能完全一样,只是各自完成一小部分,每次只返回一小部分的查询结果,类似于分页查询。
查询切分不管是对于SQL查询本身,还是对于上层业务来说,都是很小的开销。
三、执行计划
使用EXPLAIN关键字,可以让我们知道MYSQL是如何执行SQL语句的,可以帮助我们分析我们的查询语句或是表结构的性能瓶颈,EXPLAIN的查询结果还会告诉我们索引主键是如何被利用的,数据表示如何被搜索或排序的等等。
四、遵守原则
在我们平时写SQL时,养成良好习惯就可以很大程度上避免一些SQL性能问题。盘点以下几点:
a. 永远为每张表设置一个ID主键;
b. 避免使用SELECT *;
c. 为搜索字段建立索引;
d. 在Join表时使用对应类型的列,并将其索引;
e. 尽可能使用NOT NULL;
五、使用查询缓存
当有很多相同查询被执行多次时,这些结果往往会被放入一个缓存中,这样后续的相同查询就不用操作而直接访问缓存结果了。
MySQL查询缓存保存查询返回的完整结果。当查询命中该缓存,MySQL会like返回结果,跳过了解析、优化和执行截断。
这是提高查询性能最有效的方法之一,而且这是被MySQL引擎处理的,通常MySQL默认是不开启查询缓存的,需要手动开启。
注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有!此页面下方声明无效!
![](/images/ad_con.jpg)
猜你喜欢LIKE
相关推荐HOT
更多>>![](/wzt/tongyong4.jpg)
Python如何导入自定义模块?
在Python中,一个文件就叫做一个模块,每一个模块在Python里都被看做是一个独立的文件,以.py为后缀名。模块包含了Python对象定义和Python语句...详情>>
2022-12-01 17:30:29![](/wzt/tongyong5.jpg)
Python中注释方式分为哪两种?
在Python中,注释方式大致分为两种:单行注释和多行注释,#表示单行注释,'''或"""表示多行注释,接下来我们通过这篇文章为大家详细的讲解一下...详情>>
2022-12-01 17:27:32![](/wzt/tongyong6.jpg)
Python语言如何解析参数?
每种编程语言都有创建脚本并从终端运行它们或被其他程序调用的功能,在运行此类脚本时,我们经常需要传递脚本所需的参数,以便在脚本内执行各种...详情>>
2022-12-01 17:24:00![](/wzt/tongyong7.jpg)
Python中水仙花数如何输出?
所谓“Python中水仙花数”是指一个三位数,其各位数字立方和等于该数本身。用Python输出水仙花数,对于有面试需求或者对算法感兴趣的同学,是一...详情>>
2022-12-01 17:20:40![](/wzt/tongyong8.jpg)
Python中如何优化SQL语句?
编程人员一定不陌生SQL语句吧,在我们日常写项目过程中,或多或少都会使用到SQL,SQL主要功能有增删改查,其中最常见的就是查询了,因此SQL语句...详情>>
2022-12-01 17:17:11Python培训问答更多>>
新爬虫软件是什么?就业前景如何
新Python指的是什么?就业前景如何
新python培训课程费用大概是多少?
新python爬虫是什么?基本概念和类型解析
新学python有什么用?对职业发展有实际性帮助吗
新学会python能干什么?python学习需要注意什么
新学c语言还是python?哪个学得快
Python面试题库 更多>>
Python中的pass语句是什么?
怎样将字符串转换为小写?
怎么移除一个字符串中的前导空格?
python中的标识符长度能有多长?
Python区分大小写吗?
解释Python中的join()和split()函数
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区
![](/images/form-tit2.png)