在MySQL查询中省略分号是不是很糟糕?

时间:2013-07-02 14:00:52

标签: mysql sql

我最近在MySQL查询结束时一直在省略分号,而且我发现这可能会在服务器高负载,缓存等期间产生负面影响。是否存在任何此类影响?

1 个答案:

答案 0 :(得分:21)

如果系统能够在没有分号的情况下告诉语句的结尾,则省略它们不会造成任何伤害。如果系统混淆,那就很重要了。既然你已经离开了它们,那么显然没有问题。很大程度上取决于你如何编写SQL。如果您在PHP中编写单个语句,然后将它们发送到MySQL进行处理,则分号是可选的。

你问它是否“可能在服务器高负载,缓存等期间可能产生负面影响”答案是'不'。如果它有效果,它就是对你的意思的基本解释,并且差异几乎不可避免地在“它工作”和“它不编译,更不用说运行”之间。加载或缓存等效果完全独立于分号的存在与否。

这个答案相当普遍。有一个SQL Server问题的引用,该问题表明SQL Server不需要分号,但在更新的版本中进行了更改,因此它们是必需的。它适用于大多数其他DBMS。处理SQL脚本的SQL命令解释器需要知道SQL语句之间的界限,而分号是表示它的标准方式,尽管还有其他约定(我相信有些使用go而有些使用斜杠{{ 1}}用于工作)。但从根本上说,它归结为“它是否有效”。如果是,那么分号就没有必要了。