黄东旭解析 TiDB 的核心优势
634
2023-07-21
本文关于(使用SQL的一般化开发规范-平凯星辰)。
本章将介绍一些使用 SQL 的一般化开发规范。
基本原则:表的建立在遵循表命名规范前提下,建议业务应用内部封装建表删表语句增加判断逻辑,防止业务流程异常中断。
详细说明:create table if not exists table_name
或者 drop table if exists table_name
语句建议增加 if 判断,避免应用侧由于 SQL 命令运行异常造成的异常中断。
基本原则:避免使用 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小时内删除侵权内容。