我在是否也要在生产中记录 SQL 查询方面遇到两难境地。
我不知道在 PHP 中写入文件有多慢。可能一些基准可以给出一些答案,但我想看看你们之前的想法。
什么会使过程变慢或不会变慢?或者它可能取决于什么?
我在是否也要在生产中记录 SQL 查询方面遇到两难境地。
我不知道在 PHP 中写入文件有多慢。可能一些基准可以给出一些答案,但我想看看你们之前的想法。
什么会使过程变慢或不会变慢?或者它可能取决于什么?
大多数数据库都有用于记录查询和慢速查询的内置选项,因此您不需要通过 PHP 进行记录。除非您遇到问题并且这是故障排除过程的一部分,否则您不应记录生产中的所有查询。您可以并且应该记录慢速查询,以便查看可能导致您的生产站点变慢的原因。
如果您的框架支持它,则只有在页面生成需要一定时间时才可以记录查询(这就是我所做的)。然后,您有条件地进行日志记录,并且可能会发现正在运行的查询数量过多。
你有几个选择:
作为记录(您没有指定您的数据库),Postgresql 有一堆与日志记录相关的选项。其中,我使用log_min_duration_statement来记录运行超过 N 秒的查询。用于分析,无需填充日志文件并干扰性能。我敢打赌大多数数据库都有类似的东西。
好吧,第 1 件会很慢的事情是通过访问数据库进行磁盘 IO。最好的答案是让您在一些不平凡的情况下尝试它(记住,对于小 n 来说一切都很快)并询问一些利益相关者性能是否可以接受。这可能不是您想要的答案,但它确实是最好的答案。