暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PolarDB IMCI发布支持自动无感提速(AutoIndex)

原创 junyuan 2024-11-21
221

业务背景

如果业务中既包含OLTP类业务又包含OLAP类业务,则为了实现业务的最大性能,您可以基于PolarDB列存索引特性,通过数据库代理的集群地址功能,实现OLAP查询引流到列存节点、OLTP查询引流到行存节点。
为了使用列存索引,开发者需要购买列存索引只读节点、增加列存索引、并判断哪些业务或SQL需要通过列存索引提速,过程比较复杂,有一定的使用门槛。
针对该问题PolarDB推出自动无感提速功能,为开发者提供自动列存索引提速功能,自动无感地提升慢SQL的查询速度。

功能优势

  1. 减少手动调优工作:自动列存索引提速功能会自动基于慢SQL创建合适的列存索引,使慢SQL获得可观的执行加速,无需您再深入理解每一条慢SQL再进行调优加速。
  2. 持续优化:随着应用负载的变化,自动列存索引提速功能持续监控并调整列存索引策略,确保数据库保持最佳性能状态。

操作步骤

image.png

  1. 控制台开启自动无感提速
  2. 购买列存索引节点
  3. 自动创建列存索引:根据sql_trace中提供的慢查询提取top SQL,针对top 慢SQL创建对应表列存索引,如果下轮未出现慢查询则不创建,如果继续出现继续创建。
  4. 开启自动列存索引提速功能后,系统将根据您的慢SQL自动创建列存索引(列存索引数据会占用一定的存储空间)。
  5. 列存索引创建后会自动将慢查询路由至列存只读节点提速。

SQL Trace简介

PolarDB MySQL版提供的SQL Trace功能,用于跟踪SQL语句的执行信息,如:执行计划和执行统计信息(包括扫描行数、执行时间等)。可以帮助您快速地发现因执行计划变更而引发的性能变化,并统计当前集群中消耗负载较大的TopSQL。

开启自动列存索引提速

登录PolarDB控制台。
在左侧导航栏,单击集群列表。
在左上角,选择集群所在地域。
在集群列表页面,单击目标集群ID。
在基本信息页面,单击自动列存索引提速栏的开启按钮。
image.png
按照当前集群是否有只读列存节点,可以分为如下两种情况:

  1. 当前集群已有只读列存节点时,在开启自动列存索引提速对话框,单击确定,即可开启自动列存索引提速。
    image.png
  2. 当前集群没有只读列存节点时,在开启自动列存索引提速对话框,单击确定,将跳转至添加只读列存节点页面。
    image.png
    可以在单击确定后立即添加只读列存节点,也可以后续手动添加只读列存节点。开启自动无感提速后,当前集群应含有至少一个只读列存节点,否则即使自动列存索引提速为开启状态,也不会提供加速服务。开启自动无感提速后,若您未添加列存只读节点,系统会采用SQL Trace功能记录慢SQL的历史执行情况,但不会创建列存索引。即无法提供加速服务。

注意事项

  1. 多主集群(库表)不支持开启自动列存索引提速功能。
  2. Serverless集群不支持开启自动列存索引提速功能。
  3. 开启自动列存索引提速功能后,添加的只读列存节点按普通节点收费。具体信息,请参见计算节点计费规则。
  4. 开启自动列存索引提速功能后,系统将根据您的慢SQL自动创建列存索引(列存索引数据会占用一定的存储空间)。
  5. 开启自动列存索引提速功能后,系统会采用SQL Trace功能记录慢SQL的历史执行情况,一般情况下会占用不超过3%的数据库节点性能。具体信息,请参见SQL Trace。
  6. 自动列存索引提速功能内部采用Nonblock DDL执行列索引添加动作,Nonblock DDL功能可以保证即使在无法获得MDL-X锁的情况下,依然允许新事务进入目标表,从而保证整个业务系统的稳定。 更多信息,请参见非阻塞DDL。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论