Autor Zpráva
IdemeNaHavaj
Profil
http://stackoverflow.com/questions/6069237/fastest-way-to-count-exact-number-of-rows-in-a-very-large-table označená odpoveď:
--Note, sp_spaceused uses this DMV
SELECT
   Total_Rows= SUM(st.row_count)
FROM
   sys.dm_db_partition_stats st
WHERE
    object_name(object_id) = 'MyBigtable' AND (index_id < 2)
Malo by to zobraziť číslo koľko je v DB produktov, aby sa to nenačítavalo hodinu ak je tam tých produktov milióny.

Tento sql mám vo mysql_query() ako $query. ďalej neviem, ako dostať to číslo do premennej $rows?
juriad
Profil
IdemeNaHavaj:
To řešení se týká SQL Serveru. Pokud jej nepoužíváš, je pro tebe nepoužitelné.
IdemeNaHavaj
Profil
A ako sa dá najrýchlejším spôsobom načítať počet údajov v mysql ak ich je tam velmi velké množstvo?
polonium
Profil
pokud vis jak dostat data z dotazu SELECT tak vis jak se dostat k poctu tech radku v SUM(). Pouzij SUM(st.row_count) as Total_Rows. A zbytek je jasny :)


IdemeNaHavaj:
Mrkni sem http://www.mysqlperformanceblog.com/2007/08/28/to-sql_calc_found_rows-or-not-to-sql_calc_found_rows/
IdemeNaHavaj
Profil
No ja si to dám do napr. COUNT(*) ten sql ale potom čo ďalej s tím? Keď naťítavam údaje tak ešte dávam $data = mysql_fetch_object($query) a potom dáta načítam $data->blabla
DJ Miky
Profil
Když si ten sloupec rozumně pojmenuješ, třeba:
SELECT COUNT(*) AS pocet FROM tabulka
Pak jej budeš mít přístupný v $data->pocet.
IdemeNaHavaj
Profil
Dobre ide to rýchlo, ďakujem, ešte jeden malý problém mám s ktorým si neviem rady.

Do toho SQL ešte pridávam WHERE stlpec IN ('nieco1','nieco2','nieco3','nieco4') atď niekedy aj 20x je tam to niečo, a to mi spomaluje tento proces.
Čím by sa dalo nahradiť WHERE .. IN ()?
peta
Profil
Mas ten sloupec v indexech (klicich)? Jestli neni indexovany, tak to pujde pomalu.
Jestli jsou ta slova casto pouzivana, mozna by se dala udelat tabulka slov a dosadit misto nich cisla z tabulky slov. Prohledat tabulku se 100 slovy je rychlejsi nez hledat mezi 100.000 radky retezec.
polonium
Profil
Spis nez IN muzes skusit psat sloupec = neco1 OR sloupec = neco2, ale jak rika peta vytovrit vazbu 1:N mezi tabulkama by bylo lepsi
IdemeNaHavaj
Profil
stačilo to teda nastaviť ako index, díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0