1. PHP / Говнокод #6344

    +179

    1. 1
    2. 2
    3. 3
    // Count rows in news table
    $rows = $db -> query('SELECT * FROM news');
    $count = count($rows)

    Увидел в одном самопальном движке.

    Запостил: Shitafaka, 14 Апреля 2011

    Комментарии (16) RSS

    • не знать про COUNT() - это сильно (:
      Ответить
    • сделал все наоборот. вместо самого быстрого запроса, самый медленный.
      Ответить
    • а если там миллион записей ...
      Ответить
    • причем звездочкой... не только все строки, но и все столбцы )))
      Ответить
    • круто.
      а я тут как дебил пытаюсь взять число записей из системных таблиц
      это потому что count(*) тоже не шибко быстрый
      вот же оно решение!
      Ответить
    • http://otvety.google.ru/otvety/thread?tid=3360ed2032041361
      oh shi~
      Ответить
      • Всё-таки count(*) быстрее чем count(column).
        На InnoDB таблице с ~60000 записей - быстрее на ~0.02 секунды.
        На таблице MyISAM с ~90000 записей - быстрее на ~0.06 секунд.
        Так что дружно юзаем count(*) :)

        Для сравнения также потестил говнокодерский вариант из сабжа.
        Он медленнее в 17-18 раз.
        Ответить
        • на MySQL бенчи непоказательны
          ибо GDBMS
          Ответить
          • А чем тогда разница объясняется?

            По каждому из тестов сделал по 50 прогонов. Скрипт запускал консольно. MySQL-caching предварительно убил. Коннектился по named-pipe (А значит задержки на установку соединения можно в расчёт не брать).
            Ответить

    Добавить комментарий