Научи ме

Програмиране => Бази данни => Темата е започната от: HanKrum в 10 Август 2017, 09:49:02

Титла: Кое е по- бързо COUNT(id) или ...->rowCount()
Публикувано от: HanKrum в 10 Август 2017, 09:49:02
Здравейте!
Ползвам PDO и MySQL с много тежка база и всяка милисекунда ми е важна.
Та на въпроса: Кое е по-бързо?
Код: PHP
  1. $br = $this->bd()->prepare('SELECT COUNT(id) AS cnt FROM tab;')->fetchRowAssoc();
  2. $broj = $br['cnt']
  3. //като fetchRowAssoc() е ...->fetch(\PDO::FETCH_ASSOC)
или
Код: PHP
  1. $broj = $this->bd()->prepare('SELECT id FROM tab;')->RowCount();
Титла: Re: Кое е по- бързо COUNT(id) или ...->rowCount()
Публикувано от: HD в 24 Август 2017, 11:42:35
Ако базата данни ти е много тежка, бих казал второто.
Титла: Re: Кое е по- бързо COUNT(id) или ...->rowCount()
Публикувано от: Mysqli в 07 Юни 2020, 23:25:38
И аз ще кажа второто ....по малко букви по бързо чете )) Не че друго, ама като "тридневен специалист" ме бива )) Абе малко майтап да става, пak другото ще го бутаме полека лека ... Han Krum закачих се за темета понеже гледам лентичката на знамето, та да те попитам защо така ?
Титла: Re: Кое е по- бързо COUNT(id) или ...->rowCount()
Публикувано от: HanKrum в 05 Юли 2020, 22:35:52
... жалейка за България ... дай Боже някога да възкръстне !!!
Титла: Re: Кое е по- бързо COUNT(id) или ...->rowCount()
Публикувано от: Avalanche в 08 Юли 2020, 11:48:18
Верният отговор е SELECT COUNT(*) FROM - това е специален синтаксис и е оптимизиран за броене на колони. Доколкото си спомням даже в MyISAM се пазеше отделно точния брой на редовете и не се обхожда цялата таблица при всяка заявка. За InnoDB нямам спомени вече, но мисля, че имаше нещо подобно и там.
Титла: Re: Кое е по- бързо COUNT(id) или ...->rowCount()
Публикувано от: Данаил Рабаджийски в 31 Август 2020, 12:23:20
Верният отговор е SELECT COUNT(*) FROM - това е специален синтаксис и е оптимизиран за броене на колони. Доколкото си спомням даже в MyISAM се пазеше отделно точния брой на редовете и не се обхожда цялата таблица при всяка заявка. За InnoDB нямам спомени вече, но мисля, че имаше нещо подобно и там.
И според мен това е по-бързия вариант, защото броенето го прави самата база, а при втория веднъж чакаш да ти извади списък с резултати и после броиш колко са елементите в списъка.