PolarDB产品使用问题之SQL查询该如何优化

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。

问题一:PolarDB这个审计是免费的吗?


PolarDB这个审计是免费的吗?


参考回答:

PolarDB的审计功能不是免费的,开启后会产生额外费用。

PolarDB是阿里云提供的一种云原生关系型数据库服务,它具备高性能、高可用性和高扩展性的特点。其中,SQL审计是一项重要的安全功能,用于记录数据库操作的详细信息,以便于事后分析和审计。但是这项功能默认是关闭的,用户需要手动开启。一旦开启,将根据审计日志存储的容量收取费用,价格为0.012元/小时/GB。这些费用是按量扣费的,不支持包年包月的计费方式。

此外,如果用户不再需要审计功能,可以在PolarDB-X控制台关闭它。关闭后,系统将不再写入新的审计数据,但用户仍然可以查看之前的历史数据。需要注意的是,这部分历史数据也会产生存储和索引费用。

总之,在使用PolarDB时,了解各项功能的费用对于控制成本非常重要。建议在启用任何可能产生费用的功能之前,先详细阅读相关的计费说明和条款,以避免不必要的开支。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/595358



问题二:PolarDB新用户使用最新的数据库代理2.8.28和数据库内核8.0.2.2.13的用户多吗?


PolarDB新用户使用最新的数据库代理2.8.28和数据库内核8.0.2.2.13的用户多吗?有啥反馈的问题暂时无法处理的吗?


参考回答:

代理可以升级的稳定版本都是比较稳定的,我们新的改动较大的版本只有新购才能购到,升级的都是优先使用bugfix的稳定版本。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/595357



问题三:PolarDB2.8.25到2.8.28中间这几个版本改了什么呢?


数据库代理最新版本2.8.28,而帮助文档里发布日志只有2.8.25以下版本发布日志,PolarDB2.8.25到2.8.28中间这几个版本改了什么呢?


参考回答:

让文档同学补充了。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/595356



问题四:PolarDB这两个最新版是否属于稳定版?


PolarDB这两个最新版是否属于稳定版?


参考回答:

是的。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/595354



问题五:在PolarDB这样的sql能优化么?


在PolarDB这样的sql能优化么?

select from
( select a.id as id, a.num_site as numSite, a.seller_code as sellerCode, a.seller_short as sellerShort,
a.id_seller as idSeller, a.type as type, a.portfolio_id as portfolioId, a.portfolio_name as portfolioName,
a.campaign_id as campaignId, a.campaign_type as campaignType, a.name as name, a.state as state,
a.targeting_type as targetingType, a.start_date as startDate, a.end_date as endDate, a.strategy as strategy,
a.budget as budget, a.suggested_budget as suggestedBudget, a.budget_type as budgetType, a.effective_budget as effectiveBudget,
a.last_update_date_time as lastUpdateDateTime, a.serving_status as servingStatus, a.creation_date_time as creationDateTime,
a.usage_updated_timestamp as usageUpdatedTimestamp, a.placement_bidding as placementBidding, a.del_flag as delFlag,
a.create_by as createBy, a.create_name as createName, a.create_time as createTime, a.update_time as updateTime,
a.update_by as updateBy, a.update_name as updateName, a.cost_type as costType, a.bid_optimization as bidOptimization ,
b.
, c.* from ams_campaign a

inner join (

select campaign_id as campaign_id, group_concat(distinct id_ad_user) as idAdUserList,

group_concat(distinct id_practice) as idPracticeList,

group_concat(distinct ad_user_name) as adUserNameList, group_concat(distinct practice_user_name) as practiceUserNameList

from ams_data_auth WHERE 1=1

and (

id_ad_user in ( 1562393201367879680 )

or id_practice in ( 1562393201367879680 ) )

group by campaign_id ) b

on a.campaign_id = b.campaign_id

left join (

select campaignId as rCampaignId, round(max(topOfSearchImpressionShare + 0), 4) as topOfSearchImpressionShare,

round(sum(impressions + 0), 0) as impressions, round(sum(clicks + 0), 0) as clicks,

round(sum(clicks + 0) / sum(impressions + 0), 4) as ctr, round(sum(cost + 0) / sum(clicks + 0), 2) as cpc,

round(sum(cost + 0), 2) as cost, round(sum(sales14d + 0), 2) as sales, round(sum(cost + 0) / sum(sales14d + 0), 4) as acos,

round(sum(sales14d + 0) / sum(cost + 0), 2) as roas, round(sum(purchases14d + 0), 0) as orderNums,

round(sum(purchasesSameSku14d + 0), 0) as orderNumsSame, round(sum(purchasesOtherSku14d + 0), 0) as orderNumsOther,

round(sum(spend + 0) / sum(purchases14d + 0), 2) as cpa, round(sum(purchases14d + 0) / sum(clicks + 0), 4) as cvr,

round(sum(unitsSoldClicks14d + 0), 0) as unitsSold, round(sum(viewableImpressions + 0) / sum(impressions + 0), 4) as vtr,

round(sum(viewableImpressions + 0) / sum(clicks + 0), 4) as vctr, round(sum(attributedOrdersNewToBrand14d + 0), 0) as brandNewBuyerOrderNums,

round(sum(attributedOrdersNewToBrand14d + 0) / sum(clicks + 0), 4) as brandNewBuyerOrderRate,

round(sum(attributedSalesNewToBrand14d + 0), 0) as brandNewBuyerSales, round(sum(attributedUnitsOrderedNewToBrand14d + 0), 0) as brandNewBuyerUnitsOrdered,

round(sum(video5SecondViews + 0), 0) as video5SecondViews, round(sum(video5SecondViews + 0) / sum(viewableImpressions + 0), 4) as video5SecondViewRate,

round(sum(videoFirstQuartileViews + 0), 0) as videoFirstQuartileViews, round(sum(videoMidpointViews + 0), 0) as videoMidpointViews,

round(sum(videoThirdQuartileViews + 0), 0) as videoThirdQuartileViews, round(sum(videoCompleteViews + 0), 0) as videoCompleteViews,

round(sum(videoUnmutes + 0), 0) as videoUnmutes, round(sum(attributedBrandedSearches14d + 0), 0) as brandSearches,

round(sum(cumulativeReach + 0), 0) as cumulativeReach, round(sum(impressionsFrequencyAverage + 0), 0) as impressionsFrequencyAverage

from ams_sp_campaign

WHERE 1=1

and report_category = 'SPONSORED_PRODUCTS'

and date between '2024-01-21' and '2024-01-21' group by campaignId ) c

on a.campaign_id = c.rCampaignId

WHERE 1=1

and a.del_flag = 0

and a.type = 'SPONSORED_PRODUCTS'

and a.serving_status != 'CAMPAIGN_INCOMPLETE'

and a.num_site in ( 7 ) ) a order by a.id desc limit 0,10


参考回答:

这个SQL查询看起来已经相当优化了。它使用了多个子查询和连接操作,以及聚合函数和条件过滤来获取所需的数据。以下是一些可能的优化建议:

  1. 索引优化:确保在相关表上创建适当的索引,以加速查询速度。例如,可以在ams_campaign表上的campaign_iddel_flagtypeserving_statusnum_site字段上创建索引。同样,在ams_data_auth表上的campaign_idid_ad_userid_practice字段上创建索引。最后,在ams_sp_campaign表上的report_categorydatecampaignId字段上创建索引。
  2. 减少子查询:尽量减少子查询的使用,因为它们可能会导致性能下降。在这个查询中,可以考虑将部分子查询合并到主查询中,或者使用临时表来存储中间结果。
  3. 避免全表扫描:尽量避免在查询中使用全表扫描,因为这会导致性能下降。可以通过添加适当的索引和使用更精确的过滤条件来避免全表扫描。
  4. 限制返回的数据量:尽量只返回所需的数据,而不是返回整个表的所有列。在这个查询中,可以通过仅选择需要的列来减少数据传输量。
  5. 使用并行查询:如果数据库支持并行查询,可以尝试启用并行查询来提高查询性能。这可以通过设置适当的并行度参数来实现。

请注意,这些优化建议可能需要根据实际数据模型和查询需求进行调整。在进行任何优化之前,请务必备份数据并在测试环境中进行测试,以确保优化后的查询仍然正确且性能得到提升。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/595273

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
26天前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
1月前
|
SQL 存储 缓存
如何优化SQL查询性能?
【10月更文挑战第28天】如何优化SQL查询性能?
97 10
|
1月前
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
|
2月前
|
SQL 资源调度 分布式计算
如何让SQL跑快一点?(优化指南)
这篇文章主要探讨了如何在阿里云MaxCompute(原ODPS)平台上对SQL任务进行优化,特别是针对大数据处理和分析场景下的性能优化。
|
2月前
|
SQL 监控 数据库
慢SQL对数据库写入性能的影响及优化技巧
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生显著的不利影响
|
SQL 存储 索引
|
SQL 索引 程序员
SQL查询效率介绍及9个注意事项
原文 http://blog.csdn.net/guoxuepeng123/article/details/8604715 一、查询条件精确,针对有参数传入情况 二、SQL逻辑执行顺序   FROM-->JOIN-->WHERE-->GROUP-->HAVING-->DISTINCT-->...
1192 0

相关产品

  • 云原生数据库 PolarDB