【技术实现步骤摘要】
优化建议生成及数据库查询方法、装置、设备及存储介质
本公开涉及数据库领域,特别是涉及一种优化建议生成及数据库查询方法、装置、设备及存储介质。
技术介绍
数据库执行SQL语句之前,一般会经历词法分析、语法分析、语义分析、SQL重写及优化,以及生成执行计划几个阶段。其中SQL重写及SQL优化步骤的目的是为了让SQL选择最佳的执行计划,以便更高效的执行SQL语句。但是选择最佳执行计划是根据当前表定义、统计信息以及现有索引进行选择。通过对数据库创建索引或改写SQL语句,可以使得SQL语句执行更加高效,数据库资源使用率更低。因此,创建合理的索引是提高数据库性能的关键因素之一。但是目前数据库(如关系型数据库管理系统,MySQL)没有提供自动创建索引的方案,通常只能由程序员或DBA(DatabaseAdministrator,数据库管理员)通过自身经验手工创建,实现起来较为繁琐,且人力成本较高。
技术实现思路
本公开的一个目的在于,提出一种通用的优化建议(如索引建议、重写建议)生成方案,以提高数据库查询语句的执 ...
【技术保护点】
1.一种数据库查询语句的优化建议生成方法,包括:/n对所述数据库查询语句中的查询条件进行下推;/n对下推后的查询条件进行合并,以得到查询条件组合;以及/n基于所述查询条件组合生成索引建议。/n
【技术特征摘要】 【专利技术属性】
1.一种数据库查询语句的优化建议生成方法,包括:
对所述数据库查询语句中的查询条件进行下推;
对下推后的查询条件进行合并,以得到查询条件组合;以及
基于所述查询条件组合生成索引建议。
2.根据权利要求1所述的优化建议生成方法,其中,在基于查询条件组合生成索引建议之前,该方法还包括:
剔除所述查询条件组合中不适于使用索引的查询条件。
3.根据权利要求1所述的优化建议生成方法,其中,所述基于查询条件组合生成索引建议的步骤包括:
为所述查询条件组合针对的列创建索引建议。
4.根据权利要求3所述的优化建议生成方法,其中,所述为查询条件组合针对的列创建索引建议的步骤包括:
为所述查询条件组合针对的列创建隐式的索引扫描操作;
基于所述索引扫描操作生成索引建议。
5.根据权利要求1所述的优化建议生成方法,其中,在对所述数据库查询语句中的查询条件进行下推之前,该方法还包括:
对所述数据库查询语句进行解析,以将所述数据库查询语句转换为内部表达式,其中,所述内部表达式包括按照预定顺序连接的查询条件和投影指令。
6.根据权利要求1所述的优化建议生成方法,其中,
对于所述数据库查询语句中针对多个表的查询条件,将所述多个表中返回结果集最小的表作为驱动表,将其他表作为被驱动表,将该查询条件作为每个被驱动表的查询条件。
7.一种数据库查询语句的优化建议生成方法,包括:
对所述数据库查询语句中的查询条件进行下推;
对下推后的查询条件进行合并,以得到查询条件组合;
对所述数据库查询语句中的投影指令进行合并,以得到投影指令组合;以及
基于所述查询条件组合和所述投影指令组合,生成重写建议。
8.根据权利要求7所述的优化建议生成方法,其中,所述生成重写建议的步骤包括:
将所述查询条件组合和所述投影指令组合构成的表达式,作为所述数据库查询语句的重写建议;或者
在由所述查询条件组合和所述投影指令组合构成的表达式不能在数据库的编译器中实现的情况下,基于所述表达式反向生成新的数据库查询语句,作为所述数据库查询语句的重写建议。
9.根据权利要求7所述的优化建议生成方法,其中,在对所述数据库查询语句中的查询条件进行下推之前,该方法还包括:
对所述数据库查询语句进行解析,以将所述数据库查询语句转换为内部表达式,其中,所述内部表达式包括按照预定顺序连接的查询条件和投影指令。
技术研发人员:雷尚顺,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛;KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。