兰州网站推广排名,今天开始做魔王免费观看网站,dedecms wordpress,南宁网络公司多少钱为单位制订的SQL规范#xff0c;分享一下。首先说一下#xff0c;这是公司用的一个规范#xff0c;给到程序员做参考的。其实#xff0c;这个规范是建立在对SQL有一定熟悉程序的基础上的#xff0c;所以规范本身并不涉及SQL语法学习的相关内容。1. 绝对避免使用 SELECT *S… 为单位制订的SQL规范分享一下。 首先说一下这是公司用的一个规范给到程序员做参考的。其实这个规范是建立在对SQL有一定熟悉程序的基础上的所以规范本身并不涉及SQL语法学习的相关内容。 1. 绝对避免使用 SELECT *SELECT * 查询会返回所有列的记录。这样的查询会有很多问题很多情况不需要检索所有的字段使用 SELECT * 会消耗过多的带宽在考虑到修改表结构的前题并存在脏数据的情况SELECT * 出现意想不到的结果SELECT * 比 SELECT [字段] 要慢因为后者可以使用列索引SELECT * 返回的列顺序不可控。因此要求查询时逐个列表需要查询的字段。包括查询全部字段也需要将字段逐个写出来并按照需要的方式排序字段的先后次序。2. 区分使用 WHERE 和 HAVINGSQL 中 WHERE 和 HAVING 从语法上可以在一定范围内混着用但两个词的语义截然不同在实际编程时需要按语义分开使用。WHERE 用于全部CRUDHAVING只用于查询 SELECTWHERE 用在聚合操作之前过滤数据HAVING 用在聚合之后HAVING 子句中可以使用聚合函数如SUM、MIN、MAX、COUNT而 WHERE 子句不能使用聚合函数除非该子句是 HAVING 子句中包含的子查询的一部分。3. 表连接查询使用 INNER JOINJOIN 是使用非常多的SQL查询之一允许用户从多个表中选择数据。WHERE 也可以连接两个表并获取聚合数据但开发中禁止使用。一个主要的原因是 WHERE 返回的是 CROSS JOIN返回的记录数是两个表记录的乘积。例如两个表A和B各有1000条数据用 WHERE 子句将会返回一个 1000 x 1000 1000000条记录的 CROSS JOIN然后再从这个数据集里提取满足条件的数据。这在性能上不可接受。而上面的例子在 INNER JOIN 时仅返回 1000 条记录然后从这个数据集中提取满足条件的数据。虽然有些数据库会在内部将 JOIN 查询中的 WHERE 转换为 INNER JOIN但规则要求显式使用 INNER JOIN而不是 WHERE。4. 使用 EXISTS 和 NOT EXISTS 代替 IN 和 NOT IN在检索某个值在表中存在与否时EXISTS 子句的执行进程会在找到值后停卡而 IN 子句会在找到值后继续扫描所有的值。NOT EXISTS 和 NOT IN 的执行也一样。这个规则也是性能原因。5. 使用 代替 LIKE两个方式都可以用来匹配字符串但 LIKE 用于匹配通配符而 用来进行精确匹配。在 SQL 中 操作符可以使用索引会比 LIKE 更快。6. 使用 LIMIT 子句限制检索结果数量查询数据时尽可能使用 LIMIT 子句来限制查询结果数量。大多数情况下查询没有必要返回所有行。限制查询返回的数量也可以提高查询性能。7. 查询多表时使用表别名多表查询时使用表别名避免混淆并防止数据库在搜索列表所属的表时解析列名。这不会增加工作量但很有效。8. 避免使用 “sp_” 作为存储过程的名称前缀原则上避免使用存储过程。如果必须使用存储过程那必须禁止使用 sp_ 作为前缀的存储过程名称。SQL Server 中会首先在主数据库中查询名称以 sp_ 开头的存储过程然后再搜索其它地方。因此避免 sp_ 打头的存储过程名称可以节省大量时间SQL Server将直接检查 DBO 作为存储过程的所有者而不是在主数据库中查找存储过程。9. 采用规范的查询代码风格这算是一个建议但是使用良好规范的代码风格是必要的完整的注释。需要帮助其它团队成员理解查询的目的并提醒开发者做的是什么使用明显的命名约定。数据库、表名、字段名包括临时表和变量名都应该是可读和清楚的尽可能缩进查询语句。通过缩进来确保清晰的代码外观并提高查询的可读性。SQL是一种非常灵活的语言提供了多种方法在数据库上执行所需的任务。在编程中性能瓶颈大多来自数据库操作和响应。以上这些建议可能有效地帮助加快性能消除不必要的延时并可避免长期积累的数据库问题。喜欢就来个三连让更多人因你而受益