MYSQL查询优化方法集合

少用一次select * ,少一次苦恼。

小编:这篇杂记,很水

1、避免使用select *查询

2、避免重复查询相同数据

3、mysql是否在扫描额外的记录,尽可能查询只返回需要的数据。最简单的衡量查询开销的3个指标:响应时间,扫描行数,返回的行数。检查慢日志记录是找出扫描行数过多的查询的办法 。

3.1 查看查询扫描的行数与返回行数

3.2 查看扫描行数和访问类型

explain语句中的type列反映了访问类型(全表扫描、索引扫描、范围扫描、唯一索引查询、常数引用等)。

mysql能够使用3钟方式应用where:1、在索引中使用where条件来过滤不匹配的记录(在存储引擎层完成);2、使用索引覆盖扫描(在extra列出现using index)来返回记录,直接从索引中过滤不需要的记录并返回命中的结果(在服务器层完成,无须再回表查询记录);3、从数据表中返回数据,然后过滤不满足条件记录(在extra中出现using where)(在服务器层完成,需要从数据表读取记录然后过滤)

4、若需查询需要扫描大量数据,但是只返回很少的行:

4.1 使用索引覆盖扫描,把所有需要用的列都放到索引中,这样存储引擎无须回表获取对应行就可以返回结果;

4.2 改变数据库结构(如:使用单独的汇总表);

4.3 重写复杂查询(使MYSQL优化器可以用更优化的方式执行此查询)。

5、考虑1个复杂查询还是多个简单查询

6、切分查询:将一个大的查询切分成多个小部分查询(避免一次锁住很多数据、占满事务日志、耗尽系统资源、阻塞其他重要查询,可减少mysql复制的延迟)

7、分解关联查询(优点:让缓存的效率更高;将查询分解后,执行单个查询可以减少锁竞争;在做应用层关联,可以更容易对数据库拆分,更容易做到高性能和可扩展;可减少冗余记录查询)

8、show processlist可以获得现在的查询状态

9、查询缓存:在解析一个查询语句前,如果查询缓存是打开的,那么MYSQL会优先检查这个查询是否命中查询缓存中的数据。

MYSQL通过关键字将SQL语句进行解析,并生成一颗相应的解析树,解析器将使用mysql语法规则验证和解析查询。

10、查询优化器:一个查询有多种执行方式,优化器将找到最好的执行计划。

11、尽可能避免排序或者避免对大量数据进行排序(可查询所需要的列,再根据给定列排序,然后返回结果)

12、索引合并和交叉过滤的方式来定位需要查找的行

13、优化关联查询:确保on或者using子句中的列上有索引;确保任何group by和order by中的表达式只涉及到一个表中的列

14、优化group by和distinct:使用索引优化

15、避免使用select for update

16、尽可能在索引中完成排序;只取出自己需要的列,避免多余的列;尽可能避免复杂的 Join语句和子查询;

17、可用exist代替的条件语句,避免使用in

18、可用分表查询的语句,避免使用join连接

在使用Python来安装geopandas包时,由于geopandas依赖于几个其他的Python库(如GDAL, Fiona, Pyproj, Shapely等),因此安装过程可能需要一些额外的步骤。以下是一个基本的安装指南,适用于大多数用户: 使用pip安装 确保Python和pip已安装: 首先,确保你的计算机上已安装了Python和pip。pip是Python的包管理工具,用于安装和管理Python包。 安装依赖库: 由于geopandas依赖于GDAL, Fiona, Pyproj, Shapely等库,你可能需要先安装这些库。通常,你可以通过pip直接安装这些库,但有时候可能需要从其他源下载预编译的二进制包(wheel文件),特别是GDAL和Fiona,因为它们可能包含一些系统级的依赖。 bash pip install GDAL Fiona Pyproj Shapely 注意:在某些系统上,直接使用pip安装GDAL和Fiona可能会遇到问题,因为它们需要编译一些C/C++代码。如果遇到问题,你可以考虑使用conda(一个Python包、依赖和环境管理器)来安装这些库,或者从Unofficial Windows Binaries for Python Extension Packages这样的网站下载预编译的wheel文件。 安装geopandas: 在安装了所有依赖库之后,你可以使用pip来安装geopandas。 bash pip install geopandas 使用conda安装 如果你正在使用conda作为你的Python包管理器,那么安装geopandas和它的依赖可能会更简单一些。 创建一个新的conda环境(可选,但推荐): bash conda create -n geoenv python=3.x anaconda conda activate geoenv 其中3.x是你希望使用的Python版本。 安装geopandas: 使用conda-forge频道来安装geopandas,因为它提供了许多地理空间相关的包。 bash conda install -c conda-forge geopandas 这条命令会自动安装geopandas及其所有依赖。 注意事项 如果你在安装过程中遇到任何问题,比如编译错误或依赖问题,请检查你的Python版本和pip/conda的版本是否是最新的,或者尝试在不同的环境中安装。 某些库(如GDAL)可能需要额外的系统级依赖,如地理空间库(如PROJ和GEOS)。这些依赖可能需要单独安装,具体取决于你的操作系统。 如果你在Windows上遇到问题,并且pip安装失败,尝试从Unofficial Windows Binaries for Python Extension Packages网站下载相应的wheel文件,并使用pip进行安装。 脚本示例 虽然你的问题主要是关于如何安装geopandas,但如果你想要一个Python脚本来重命名文件夹下的文件,在原始名字前面加上字符串"geopandas",以下是一个简单的示例: python import os # 指定文件夹路径 folder_path = 'path/to/your/folder' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构造原始文件路径 old_file_path = os.path.join(folder_path, filename) # 构造新文件名 new_filename = 'geopandas_' + filename # 构造新文件路径 new_file_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'Renamed "{filename}" to "{new_filename}"') 请确保将'path/to/your/folder'替换为你想要重命名文件的实际文件夹路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LEEBELOVED

一分钱都是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值