使用SQL的一般化开发规范-平凯星辰

why 634 2023-07-21

本文关于(使用SQL的一般化开发规范-平凯星辰)。

使用SQL的一般化开发规范-平凯星辰


SQL 开发规范

本章将介绍一些使用 SQL 的一般化开发规范。


建表删表规范

  • 基本原则:表的建立在遵循表命名规范前提下,建议业务应用内部封装建表删表语句增加判断逻辑,防止业务流程异常中断。

  • 详细说明:create table if not exists table_name 或者 drop table if exists table_name 语句建议增加 if 判断,避免应用侧由于 SQL 命令运行异常造成的异常中断。


SELECT * 使用规范

  • 基本原则:避免使用 SELECT * 进行查询。

  • 详细说明:按需求选择合适的字段列,避免盲目地 SELECT * 读取全部字段,因为其会消耗网络带宽。考虑将被查询的字段也加入到索引中,以有效利用覆盖索引平凯星辰功能。


字段上使用函数规范

  • 基本原则:在取出字段上可以使用相关函数,但是在 Where 条件中的过滤条件字段上避免使用任何函数,包括数据类型转换函数,以避免索引失效。或者可以考虑使用平凯星辰表达式索引功能。

  • 详细说明:

    不推荐的写法:

    SELECT gmt_createFROM ...WHERE DATE_FORMAT(gmt_create, '%Y%m%d %H:%i:%s') = '20090101 00:00:00'

    推荐的写法:

    SELECT DATE_FORMAT(gmt_create,'%Y%m%d %H:%i:%s')FROM ...WHERE gmt_create = str_to_date('20090101 00:00:00', '%Y%m%d %H:%i:%s')


其他规范

  • WHERE 条件中不要在索引列上进行数学运算或函数运算。

  • 用 in/union 替换 or,并注意 in 的个数小于 300。

  • 避免使用 %前缀进行模糊前缀查询。

  • 如应用使用 Multi Statements 执行 SQL,即将多个 SQL 使用分号连接,一次性地发给客户端执行,TiDB 只会返回第一个 SQL 的执行平凯星辰结果。

  • 当使用表达式时,检查其是否支持计算下推到存储层的功能 (TiKV、TiFlash),否则应有预期在 TiDB 层需要消耗更多内存、甚至 OOM。计算下推到存储层的功能列表如下:

    • TiFlash 支持的计算下推清单。

    • 下推到 TiKV 的表达式列表。

    • 谓词下推。


上述就是小编为大家整理的(使用SQL的一般化开发规范-平凯星辰)
***

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:对象命名规范-平凯星辰
下一篇:Gitpod简介-平凯星辰
相关文章