Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 13 ] 
AutorSpráva
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
mysql: COUNT

Registrovaný: 01.05.05
Príspevky: 13342
Témy: 1494
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.10.2014 7:47

Potreboval by som pomoct, uz sa s tym trapim a netusim ako na to, v databaze mam ulozene GPS suradnice a podla nich robim vyber miest v zadanom okruhu co je v tomto pripade 10. Chcel by som ale vypisat len pocet riadkov cez COUNT, ale to je asi uz mimo moje chapanie, ci to vobec ide...vedel by mi niekto pomoct? Ano viem, ze si ten pocet mozem zobrazit cez php funkciu, ale chcel by som aby to spravila mysql databaza a setril som tym cas.

Kód:
SELECT id, (6371 * acos(cos(radians(48...)) * cos(radians(latitude)) * cos(radians(longitude) - radians(21...)) + sin(radians(48...)) * sin(radians(latitude)))) AS distance
FROM city HAVING distance < 10 ORDER BY distance







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
mysql: COUNT

Registrovaný: 29.10.07
Prihlásený: 27.10.23
Príspevky: 1395
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.10.2014 11:47

Skus toto
Kód:
SELECT count(*)
FROM city
WHERE (6371 * acos(cos(radians(48...)) * cos(radians(latitude)) * cos(radians(longitude) - radians(21...)) + sin(radians(48...)) * sin(radians(latitude)))) < 10


Namiesto HAVING som pouzil WHERE, lebo neviem naco tam HAVING mas :)
Na "normalnej" databaze by ti tvoj vyber ani nezbehol







_________________
PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME
Mobil: Xiaomi POCO F2 PRO
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
mysql: COUNT

Registrovaný: 01.05.05
Príspevky: 13342
Témy: 1494
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 16.10.2014 19:23

ok vdaka, ja som to skusal podobne a nikdy mi to neslo, ale asi som siel na to dobre, len ten cas za to mohol zjavne :) skusil som ten select na hostingu na mariadb 5.5 a presiel bez chyb, co je na nom zle? alebo vies nejak lepsie ako spravim vyber podla gps?







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Správca fóra
Správca fóra
mysql: COUNT

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 17.10.2014 7:16

Radsej by si mal ten select optimalizovat, lebo najskor vypocitas kazdemu riadku v tabulke vzdialenost od daneho bodu a potom vyberies cez having len tie, ktore maju zistenu vzdialenost mensiu ako 10. Pri vacsom objeme dat ti to bude trvat strasne dlho. Rychlejsie by bolo dopredu vypocitat hodnoty hranicnych suradnic, na zaklade tohto rozsahu vybrat vyhovujuce data z tabulky a vyfiltrovat tie, ktorych vzdialenost je mensia ako 10. Vyuzitie indexov je dalsie plus...







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Skúsený užívateľ
Skúsený užívateľ
mysql: COUNT

Registrovaný: 29.10.07
Prihlásený: 27.10.23
Príspevky: 1395
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 17.10.2014 9:06

"zle" je len to, ze HAVING je urceny na pracu s agregovanymi funkciami, ktore ty v tom vybere nepouzivas... to je take specifikum mysql (a zrejme aj mariadb o ktorej pocujem prvy krat), ze ti dovolia HAVING bez agregovanych funkcii a GROUP BY

ale k teme :) stenley ma pravdu, tak ako je ten vyber napisany databaza nema ziadnu sancu pouzit index. inymi slovami, databaza musi vzdy prejst uplne vsetky zaznamy v tabulke. cim viac dat v nej bude, tym dlhsie vybe rbude trvat (bez ohladu na to aku malu vzdialenost budes hladat)







_________________
PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME
Mobil: Xiaomi POCO F2 PRO
Offline

Správca fóra
Správca fóra
mysql: COUNT

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 17.10.2014 10:18

Ak taketo "nestandardne" standardne rozsirenie mysql sprehladni zapis (podobne ako pri "nestandardnom" pouziti aliasov) alebo zvysi vykon pri zachovani rovnakeho vystupu, nevidim v tom ziadny problem, skor naopak.







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Skúsený užívateľ
Skúsený užívateľ
mysql: COUNT

Registrovaný: 29.10.07
Prihlásený: 27.10.23
Príspevky: 1395
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 17.10.2014 11:39

nechcem sa hadat... aliasy povazujem za standard :) su podporovane hadam vsade (preto tomu hovorim standard).

ale pouzivanie having-u a group-u tymto sposobom (ako sme sa uz dohadovali v inej teme) ja osobne povazujem za podobne "skarede" a nevhodne ako pouzivanie register_globals... funguje to, zjednodusuje to veci ale... :filth:







_________________
PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME
Mobil: Xiaomi POCO F2 PRO
Offline

Správca fóra
Správca fóra
mysql: COUNT

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 17.10.2014 12:40

Aliasy su podporovane asi v kazdom dbs, ale nie rovnakym sposobom, to som tym myslel. V mysql a dalsich mozes napr. v group by rovno pouzit alias uvedeny v selecte, inde musis oproti tomu zlozito pouzit select from select. Kazdy system ma svoje specifika a pouziva rozne odchylky, ci nazvime to rozsirenia, oproti standardu. Kvoli tomu to ale nebudem povazovat za nieco zle. Ak v tom vidim viac pozitiv ako negativ, pouzijem to ako vyhodu, ale dbam o to, aby som pripadne negativa zredukoval, alebo uplne anuloval.







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
mysql: COUNT

Registrovaný: 01.05.05
Príspevky: 13342
Témy: 1494
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 17.10.2014 12:45

stenley píše:
Radsej by si mal ten select optimalizovat, lebo najskor vypocitas kazdemu riadku v tabulke vzdialenost od daneho bodu a potom vyberies cez having len tie, ktore maju zistenu vzdialenost mensiu ako 10. Pri vacsom objeme dat ti to bude trvat strasne dlho. Rychlejsie by bolo dopredu vypocitat hodnoty hranicnych suradnic, na zaklade tohto rozsahu vybrat vyhovujuce data z tabulky a vyfiltrovat tie, ktorych vzdialenost je mensia ako 10. Vyuzitie indexov je dalsie plus...

vdaka, ale toto je uz asi moc vysoka matika na mna :) netusim vobec ako take cosi spravit, alebo som asi tomu moc nepochopil...ja mam v danej tabulke len 2900 riadkov a casom mi tam pribudne este asi okolo 5000 (netusim presne kolko ma obci ceska republika) a viac riadkov v tej tabulke nebude, ma aj tak vyznam sa tym zapodievat? jedine co ma napadlo na rychly vyber je vypocitat vzdialenost kazdeho mesta ku kazdemu mestu co tam mam, ale to by tam bolo pekne vela zaznamov :)







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Správca fóra
Správca fóra
mysql: COUNT

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 17.10.2014 12:59

Tuto to mas celkom prehladne vysvetlene https://www.scribd.com/doc/2569355/Geo- ... with-MySQL - je to sice pocitane v milach, ale prevod na km by nemal byt problem







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
mysql: COUNT

Registrovaný: 01.05.05
Príspevky: 13342
Témy: 1494
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 17.10.2014 13:12

Ok vdaka, pozriem na to, snad to nebude pre mna uplna spanielska dedina :rolleyes: len co si to len tak narychlo prezeram, tak tam maju tabulku s 800k riadkami, ja v tej tabulke nebudem mat ani 1% z ich tabulky, ma vobec vyznam sa tym zaoberat? skusil som dat index na stlpce so suradnicami a vyber sa mi zrychlil z 0.0050sec na 0,0000sec, tak len ze ci ma vobec vyznam sa pri takom malom pocte tymto zaoberat, resp zaoberat sa aspon v mojom pripade mozno aj cely vikend :-D







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
mysql: COUNT

Registrovaný: 29.10.07
Prihlásený: 27.10.23
Príspevky: 1395
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 17.10.2014 13:16

Nema, ale daj tam komentar :) Nieco ako "toto riesenie si mozem dovolit, lebo mam radovo iba tisice zaznamov"... ak ten kod raz najdu buduce generacie, alebo mimozemstania, budu vediet ze by nemali pouzit rovnaky postup na miliony zaznamov.







_________________
PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME
Mobil: Xiaomi POCO F2 PRO
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
mysql: COUNT

Registrovaný: 01.05.05
Príspevky: 13342
Témy: 1494
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 17.10.2014 13:52

Importoval som si to vsetko na webhosting a tam to tiez ide rychlo, takze sa tym asi fakt nema vyznam zatazovat, otazka je ake to bude ak by tam bola vyssia navstevnost ci to nebude vytazovat casom moc databazu, do tohoto sa moc nevyznam veru, tak skusim mrknut aj na to stenleyho riesenie, ci to vobec spravim :-) ked chce niekto vyskusat tak http://www.qlp.sk meno: jano@qlp.sk a heslo: 12345 ale podla mna to generuje celkom rychlo, najprv tam robim vyber z tabulky s mestami podla vzdialenosti, tento vyber vlozim do dalsieho selectu ktorym vyfiltrujem osoby ktore splnaju vsetky tie vybrane mesta, neviem ci idem na to dobre a ci sa to neda nejak efektivnejsie spravit...







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Odpovedať na tému [ Príspevkov: 13 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Rellocated sector count, Spin retry count problem

v Pevné disky a radiče

4

1357

25.11.2009 16:01

kuzelnik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. COUNT

v Databázy

21

449

16.04.2014 20:48

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PM Count

v Redakčné systémy

0

517

14.10.2006 15:06

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. count up

v JavaScript, VBScript, Ajax

10

857

12.01.2008 21:20

jablko05 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. fb:comments-count

v PHP, ASP

6

389

16.12.2013 23:38

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Column count .... help

v PHP, ASP

10

486

09.07.2008 11:13

javo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SMART - Reallocated Sector Count

v Pevné disky a radiče

9

726

13.01.2013 21:09

BOBO415 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. HDD (0B) Calibration Retry Count

v Pevné disky a radiče

12

1252

16.07.2012 11:36

kamo_444 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Current Pending Sector Count - HDD

v Pevné disky a radiče

4

477

05.05.2016 17:59

shiro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Návrh - Post count disabled here

v Správy pre vedenie fóra

5

1023

22.05.2008 21:22

Luks Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. XSL count na zaklade podmienky

v HTML, XHTML, XML, CSS

0

397

03.02.2010 17:07

kudzo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Reallocated Sector (Event) Count: warning

v Pevné disky a radiče

18

861

27.11.2016 18:52

tatko Tom Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Column count doesn't match

v Databázy

2

821

17.07.2010 19:47

Feko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. post view count pod postom

v Redakčné systémy

10

434

09.10.2013 15:36

don jebot Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problem s hdd (Rellocated Sector Count - Failed)

v Pevné disky a radiče

5

910

19.12.2008 18:33

Holup Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. phpBB - Forum Auth by Post Count - 3D PM box_size_notice

v Redakčné systémy

0

7172

13.10.2006 9:03

JanoF Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra