【问题标题】:CodeIgniter NOW() insert: what's the fastest way?CodeIgniter NOW() 插入:最快的方法是什么?
【发布时间】:2012-04-02 17:54:42
【问题描述】:

哪些代码会更快(或更好):

$this->db->set('date', 'NOW()', FALSE);

$data['date'] = date('Y-m-d H:i:s');

【问题讨论】:

  • 你在这里谈论的是micro-optimization。老实说,担心这一点是完全没有意义的,除非您可以通过基准证明您的应用程序性能通过使用一种方法或另一种方法以有意义的方式受到影响(提示:如果您使用任何一种方法,您的应用程序性能不会以任何有意义的方式受到影响方法)
  • 您为减少 0.001 秒所做的任何优化都会在称为“CodeIgniter”的架构和性能灾难中丢失。

标签: mysql codeigniter


【解决方案1】:

一般来说,由于开销,所有函数调用都会变慢。但是,我不会说 PHP 中的函数调用像 qwertzman answered 一样非常昂贵。好吧,与其他语言相比,它可能会慢一些,但这并不是重点。查看 this comparison 的 1,000,000 次函数调用。你看到你的收获了吗?

当谈论哪段代码更快(在您的 OP 中)时,您指的是微优化,实际上是 you shouldn't have to worry about

真正的问题是哪一段代码:更好的可维护性、可读性和可理解性。

【讨论】:

    【解决方案2】:

    一般来说,在 PHP 中调用一个函数是非常昂贵的。那么哪个更快,date 函数还是 set 函数?这是日期功能。看看 DB_active_rec.php 的第 907 行的 set 函数在做什么,它在做所有看起来没有必要的事情。

    那么哪个更好?去我猜的更快的选择。 set() 函数在这里可能有点矫枉过正(尽管我总是使用 set(),我猜是出于习惯/懒惰)。

    【讨论】:

    • PHP 中的函数调用真的不是很贵。无论哪种方式,提问者都在谈论他不应该担心的micro-optimization
    • @qwertzman viper-7.com/xYVMjo。那是 1,000,000 次运行。再说一遍:定义非常昂贵......我不称之为非常昂贵,我称之为一些明显的开销,它不应该对 OP 产生任何影响。
    • @qwertzman 而且它们仍然比与 DB/文件系统/网络套接字交互便宜几个数量级。避免函数调用所需的工作量与您将在提高应用程序性能中看到的好处完全不成比例。如果您担心性能,请使用汇编程序编写您的 Web 应用程序。祝你好运。
    • @qwertzman ,您只是表明您不理解该评论中写的内容
    猜你喜欢
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    相关资源
    最近更新 更多