Výsledky 1 až 21 z 21

Téma: 1 select z mysql (select pár položiek+počet všetkých)

  1. #1

    Standardní 1 select z mysql (select pár položiek+počet všetkých)

    Potreboval by som jedným selectom z databázy MySQL načítať dajme tomu 50 položiek (pričom v databáze je 200 000) a v tom istom selecte hneď aj zistiť počet všetkých položiek.
    Nechcem databázu prechádzať dvoma selectami lebo je to trochu cítiť na rýchlosti.
    Chcem to kvôli stránkovaniu.

    A ešte jeden dotaz:
    Sú tieto 2 príkazy na zistenie počtu položiek rýchlostne odlišné?
    1.)
    $select=mysql_query("select id from TABLE");
    $pocet=mysql_num_rows($select);

    2.)
    $select=mysql_query("select count(id) as pocet from TABLE");
    atď..

    Dík...
    Athlon 1333@1450, Titan TTC-D5TB(4), Gigabyte 7ZXE KT133a, 256MB SDRAM, MSI GF FX 5500 128MB TV-out, SB Audigy OEM, CDR Teac 532E-B, CDRW Teac W540E, Maxtor DM plus 8 30GB 7200 ot., Microcom Inporte voice, zdroj 350W, Eizo F56 17\", HP 640c, Windows XP Professional CZ /SP1

  2. #2
    Terorista karabínový mince Avatar uživatele PiT
    Založen
    13.09.2002
    Bydliště
    Bratislava
    Příspěvky
    4 550
    Vliv
    300

    Standardní

    Ten druhy sposob je na 100% rychlejsi...

    Chcel som vediet o kolko, tak som si nahlupo skusil select ID databazy s cca 3000 polozkami pri kodovani filmu a sposob 2) bol 95x rychlejsi ako 1)...

    A k tvojej prvej otazke... Neviem, ci MySQL podporuje vnoreny SELECT...
    And down we go again, under the relentless wawes, into the arms of calm breakers, into bayou of forgotten dreams
    Like sand slipping through my fingers, nothing ever lasts, ever will

  3. #3

    Standardní

    To druhe je rychlejsie, ked chces zistit len pocet. Ked chces vsak vybrat a zistit pocet vybranych, tak je rychlejsia prva moznost (lebo sa spocitaju iba riadky vo vystupe a nejde sa vobec na SQL server).
    Asi chces nieco taketo:
    1. zistit, kolko tam toho mas "select count(id) as pocet from TABLE"
    2. vypisovat napr. po 50 polozkach "select id from TABLE limit x,50" (x je cislo, od ktoreho sa zacne).
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  4. #4
    Terorista karabínový mince Avatar uživatele PiT
    Založen
    13.09.2002
    Bydliště
    Bratislava
    Příspěvky
    4 550
    Vliv
    300

    Standardní

    Rainbow:

    On to chcel spravit v jednom selecte... a pokial nie je vnoreny, tak to jednym selectom nespravis...
    And down we go again, under the relentless wawes, into the arms of calm breakers, into bayou of forgotten dreams
    Like sand slipping through my fingers, nothing ever lasts, ever will

  5. #5

    Standardní

    Toto mozno bude fungovat "select count(id) as pocet, id from TABLE limit x,50" - ale vobec sa mi to nepaci...
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  6. #6

    Standardní

    No jo, vyskúšam. Díky. Ale aj tá druhá možnosť zisťovania počtu - ak je rýchla tak by to bolo v pohode.
    Athlon 1333@1450, Titan TTC-D5TB(4), Gigabyte 7ZXE KT133a, 256MB SDRAM, MSI GF FX 5500 128MB TV-out, SB Audigy OEM, CDR Teac 532E-B, CDRW Teac W540E, Maxtor DM plus 8 30GB 7200 ot., Microcom Inporte voice, zdroj 350W, Eizo F56 17\", HP 640c, Windows XP Professional CZ /SP1

  7. #7
    Terorista karabínový mince Avatar uživatele PiT
    Založen
    13.09.2002
    Bydliště
    Bratislava
    Příspěvky
    4 550
    Vliv
    300

    Standardní

    Citace Původně odeslal Mercy
    No jo, vyskúšam. Díky. Ale aj tá druhá možnosť zisťovania počtu - ak je rýchla tak by to bolo v pohode.
    Je rychla, neboj

    Skusal som to na DB s pol milionom poloziek a bolo to nezmeratelne (=rychle)...

    [edit]

    A ten Rainbowov posledny pokus fungovat nebude... Funguje jedine s GROUP BY a potom je na dve veci...
    And down we go again, under the relentless wawes, into the arms of calm breakers, into bayou of forgotten dreams
    Like sand slipping through my fingers, nothing ever lasts, ever will

  8. #8

    Standardní

    Citace Původně odeslal Rainbow
    Toto mozno bude fungovat "select count(id) as pocet, id from TABLE limit x,50" - ale vobec sa mi to nepaci...
    A toto nefunguje, nemusis ani skusat
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  9. #9

    Standardní

    Tak, tak, už som to tiež poskúšal, nešlo to, a to s tým count je fakt rýchle. Takže dikes!
    Athlon 1333@1450, Titan TTC-D5TB(4), Gigabyte 7ZXE KT133a, 256MB SDRAM, MSI GF FX 5500 128MB TV-out, SB Audigy OEM, CDR Teac 532E-B, CDRW Teac W540E, Maxtor DM plus 8 30GB 7200 ot., Microcom Inporte voice, zdroj 350W, Eizo F56 17\", HP 640c, Windows XP Professional CZ /SP1

  10. #10

  11. #11
    Terorista karabínový mince Avatar uživatele PiT
    Založen
    13.09.2002
    Bydliště
    Bratislava
    Příspěvky
    4 550
    Vliv
    300

    Standardní

    Citace Původně odeslal jedik
    Jinak MySQL vnorene selecty samozrejme podporuje http://dev.mysql.com/doc/mysql/en/Subqueries.html
    Ale az od verzie 4.1...
    And down we go again, under the relentless wawes, into the arms of calm breakers, into bayou of forgotten dreams
    Like sand slipping through my fingers, nothing ever lasts, ever will

  12. #12
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    297

    Standardní

    mam tak trochu podobny problem:
    v tabulce jsou zaznamy (konkretne casove udaje, ale to je sumak, pisu to aby byl jasnejsi priklad nize), casto se opakuji, potreboval bych zjisitit, kolik jich je kterych, nejlip aby to vratilo neco jako:

    Kód:
    +--zaznam---+----pocet----+
    | 16:30:00  |      10     |
    | 20:00:00  |      8      |
    ....
    nenapada me nic inteligentnejsiho nez udelat dotaz "select distinct cas from..." a pak z vysledku delat jednotlivy dotazy na select count(*)... where cas='co sem nasel'.
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  13. #13

    Standardní

    KtK:
    A proc ne se GROUP BY?
    Kód:
    SELECT datum, count(datum) as pocet FROM pokus GROUP BY datum

  14. #14
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    297

    Standardní

    protoze jsem nevzdelanec a lenoch k tomu.. diky.
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  15. #15
    Senior Member mince Avatar uživatele Halen
    Založen
    07.10.2002
    Bydliště
    Martinice v Krkonoších
    Věk
    57
    Příspěvky
    1 742
    Vliv
    297

    Standardní

    Umi MySQL klasiku typu SELECT COUNT (*) AS Pocet FROM Table

    ??
    AMD A64-7750-X2-BE 2700@3000MHz (15x200/1,3V) | AC Freezer Extreme | 4xArctic FAN Pro TC 80x80 | Gigabyte MA78G-DS3H | A-DATA 2x2GB 1066Mhz 5-5-5-15-2T | WD 320GB/16MB | Samsung 500GB/16MB | Samsung SH-S223F | SAMSUNG 226BW | SB X-Fi Fatal1ty Champion+Thomson DPL2000+HomeMade bedny+subwoofer 12" 30-125Hz (-3dB) | Leadtek PX8800GT default+AC Accelero+ AC fan 12-1000ot/m | Microsoft Intelli Mouse Explorer 3.0 | Chieftec MATRIX SILVER+ FORTRON Blue Storm 400W |
    3DMk01 3DMk03 3DMk05

  16. #16
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    297

    Standardní

    Citace Původně odeslal Halen
    Umi MySQL klasiku typu SELECT COUNT (*) AS Pocet FROM Table

    ??
    samozrejme
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  17. #17

    Standardní

    Citace Původně odeslal Halen
    Umi MySQL klasiku typu SELECT COUNT (*) AS Pocet FROM Table

    ??
    kdyby neumel neni to ani SQL server
    jinak ad puvodni dotaz.
    dotaz SELECT COUNT(*) from tabulka; se u MyISAM (a mam pocit i InnoDB) provadi tak ze se precte pocet radku z hlavicky dat. tj. trva to par us a snad se ani nic nezamyka ... tj. tenhle dotaz si muzes klidne dovolit kolikrat chces ... na zatezi serveru to skoro nepoznas ... narozdil od SELECT * from tabulka; kde se vsechny ty radky tahaj z mysql serveru na klienta.

    takze bych navrhoval select count(*) from tabulka; a pak select id from tabulka limit n,50;
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  18. #18
    Senior Member
    Založen
    07.10.2002
    Bydliště
    Ostrava / Straznice
    Příspěvky
    1 133
    Vliv
    289

    Standardní

    select count(*) as pocet from tabulka je i podle mysql manualu naprosto nejrychlejsi zpusob jak zjistit pocet radku v tabulce...
    Intel C2D 4300, 1GB DDR2, 120GB Seagate, nVidia7600GT pasiv.

  19. #19
    Member
    Založen
    09.10.2002
    Bydliště
    Wigstadtl /kousek od Opavy/
    Příspěvky
    242
    Vliv
    280

    Standardní

    Citace Původně odeslal Lopan
    select count(*) as pocet from tabulka je i podle mysql manualu naprosto nejrychlejsi zpusob jak zjistit pocet radku v tabulce...
    existuji i rychlejsi SQL dotazy / toto se tyka DB SYBASE, napr. system procedure sp_spaceused, nebylo od veci si tuto proceduru projit a pouzit to, co chci...., prosel, pouzil a max. spokojenost..., samozrejme to bylo vyhodne pro tabulku se stamiliony zaznamu + neustala aktualizace dat....( tabulka nebyla uzamcena ) /

    predpokladam, ze podobne zalezitosti jsou soucasti kazde slusnejsi DB / skryte built_in fce... /

  20. #20

    Standardní

    Citace Původně odeslal johnn
    existuji i rychlejsi SQL dotazy / toto se tyka DB SYBASE, napr. system procedure sp_spaceused, nebylo od veci si tuto proceduru projit a pouzit to, co chci...., prosel, pouzil a max. spokojenost..., samozrejme to bylo vyhodne pro tabulku se stamiliony zaznamu + neustala aktualizace dat....( tabulka nebyla uzamcena ) /

    predpokladam, ze podobne zalezitosti jsou soucasti kazde slusnejsi DB / skryte built_in fce... /
    vazne netusim jak chces jeste zrychlit precteni 64bit cisla z disku (pripadne z pameti pokud se ta tabulka nedavno pouzivala)
    a to ze db ma "skryte" funkce mi neprijde jako znamka dobre databaze. spis naopak. ale sybase neznam a mozna ze to cemu ty rikas skryta funkce je uplne bezna procedura, jen si se jeste nestih podivat do manualu.
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  21. #21
    Member
    Založen
    09.10.2002
    Bydliště
    Wigstadtl /kousek od Opavy/
    Příspěvky
    242
    Vliv
    280

    Standardní

    Citace Původně odeslal Fox!MURDER
    Citace Původně odeslal johnn
    existuji i rychlejsi SQL dotazy / toto se tyka DB SYBASE, napr. system procedure sp_spaceused, nebylo od veci si tuto proceduru projit a pouzit to, co chci...., prosel, pouzil a max. spokojenost..., samozrejme to bylo vyhodne pro tabulku se stamiliony zaznamu + neustala aktualizace dat....( tabulka nebyla uzamcena ) /

    predpokladam, ze podobne zalezitosti jsou soucasti kazde slusnejsi DB / skryte built_in fce... /
    vazne netusim jak chces jeste zrychlit precteni 64bit cisla z disku (pripadne z pameti pokud se ta tabulka nedavno pouzivala)
    a to ze db ma "skryte" funkce mi neprijde jako znamka dobre databaze. spis naopak. ale sybase neznam a mozna ze to cemu ty rikas skryta funkce je uplne bezna procedura, jen si se jeste nestih podivat do manualu.
    ano, je to bezna systemova procedura, vyuzivajici fce, ktere nejsou v manualu popsany / hlavni vyhoda byla, ze pracuje i s uzamcenou tabulkou /

    klasicky "select count" nebyl pouzitelny

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •