[SQL] Count records or update + 1 ?
Last Updated: Apr 01 2015 21:25, Started by
Chintus2020
, Apr 01 2015 19:35
·
0
#1
Posted 01 April 2015 - 19:35
Salut.
Deci vorbim despre 300.000 de rânduri într-un tabel. Cum aş putea să folosesc Count când mai bine, la fiecare inserare, fac update + 1 într-un tabel nou. Gen statistici, înţelegeţi ? De ce aş folosi count ca să se uite prin 300.000 de rezultate când mai bine fac + 1 la fiecare inserare din astea 300.000 şi practic nu mai scot cu count, ci scot direct coloana cu statistici. Şi totuşi, dacă este corect ce fac, adică + 1 în loc de count, atunci de ce mai exista funcţia count ? Mă lămuriţi şi pe mine ? Edited by Chintus2020, 01 April 2015 - 19:35. |
#2
Posted 01 April 2015 - 19:44
count este mai complex, de ex. poate aduna numarul total de inregistrati chiar daca unele sunt dublate sau poate aduna numai inregistrarile unice daca se specifica count(distinct nume), etc
|
#3
Posted 01 April 2015 - 19:50
Da, bun, ştiu asta. Dar pot să îmi fac tabelul de statistici cu update + 1 aşa cum vreau eu. Astfe încât atunci când scot rezultatele sa-mi scoată exact ce vreau eu (fără să fac count from ... where .... ).
Deci am înţeles că count este mai complex, dar să umble prin 300.000 de rânduri o fi mai bine decât sa-mi fac câteva coloane cu statistici ? Eu mă gândesc la viteză. Pierd timp aiurea cu count-ul ăsta... Mai astept răspunsuri. Mulţumesc. Edited by Chintus2020, 01 April 2015 - 19:51. |
#4
Posted 01 April 2015 - 20:16
Cat de des folosesti acele statistici ca sa merite inca un tabel si o "intarziere" la fiecare insert, delete?
|
#5
Posted 01 April 2015 - 20:23
Chintus2020, on 01 aprilie 2015 - 19:35, said: atunci de ce mai exista funcţia count ? Sunt situatii si situatii. Cand ai 300.000 inregistrari, normal ca nu stai sa le numeri pe toate de fiecare data. In alte cazuri aplici count cand ai nevoie, mai ales ca poate il mai combini cu un where sau altele si nu ti-e mereu usor sa pastrezi o statistica separata. Edited by dani.user, 01 April 2015 - 20:24. |
#6
Posted 01 April 2015 - 20:25
mai degraba pierzi timpul aiurea incercand sa faci astfel de optimizari
count-ul o sa lucreze cu indexul, nu direct cu datele din tabel mentinerea unor statistici e o operatie destul de grea. o sa te chinui sa actualizezi valorile la fiecare operatiune, o sa ratezi unele operatiuni si te vei chinui o gramada sa intelegi de ce nu corespund valorile din tabelul de statistici cu numarul de linii din tabele, dar in final vei reusi sa reduci la jumatate durata unei operatiuni: in loc sa primesti count-ul intr-o milisecunda il vei putea citi in jumatate de milisecunda, si vei face asta de 5-6 ori pe ora. |
#7
Posted 01 April 2015 - 20:29
timpii aia de update in tabelul suplimentar adunati iti pot incetini aplicati mult mai mult decat ar faceo un count. Ia gandeste te , daca tu alterezi datele de 100.000 si ai nevoie de statistici doar de 10 ori ? trebuie sa alterezi si statisticile de 100.000 ori, adica 100.000 de operatiuni in plus fata de un count mai greoi care il executi de 10 ori.
oricum count ul poate fi optimizat, mai ales daca stii ce vrei sa numeri si folosesti indexi |
#8
Posted 01 April 2015 - 20:40
#9
Posted 01 April 2015 - 20:56
De statistici am nevoie sa le afişez mai mereu. În 1 din 3 pagini afişez statisticile.
Quote count-ul o sa lucreze cu indexul, nu direct cu datele din tabel Edit: Sau vrei să zici că lucrează doar cu coloana de index ? Păi şi eu făceam update + 1 pentru statistici şi citeam direct. Mie tot varianta mea mi se pare mai bună. Mai puţin că trebuie sa văd câte tabele fac având în vedere că mai folosesc şi clauze. Mulţumesc pentru răspunsuri. Edited by Chintus2020, 01 April 2015 - 21:03. |
#10
Posted 01 April 2015 - 21:08
Statisticile alea le poti retine undeva si actualiza si periodic, la cateva ore sa zicem.
Nu cred ca ai nevoie sa stii in secunda urmatoare ca sunt 300.001 inregistrari in loc de 300.000 |
|
#11
Posted 01 April 2015 - 21:09
nu se uita la indexul cel mai mare, rolul indexului este de a gasi mai usor informatia de disc
|
#12
Posted 01 April 2015 - 21:25
Chintus2020, on 01 aprilie 2015 - 20:56, said:
De statistici am nevoie sa le afişez mai mereu. În 1 din 3 pagini afişez statisticile. Da, ştiam chestia asta, dar nu înţeleg cum lucrează. Să înţeleg că folosind count interogarea se va uita doar la index-ul cel mai mare ? Dacă da, atunci înseamnă că dacă eu am d 1,2 ... 999 şi 998 e şters, rezultatul este 999 ? Mă lămureşti puţin ? Edit: Sau vrei să zici că lucrează doar cu coloana de index ? Păi şi eu făceam update + 1 pentru statistici şi citeam direct. Mie tot varianta mea mi se pare mai bună. Mai puţin că trebuie sa văd câte tabele fac având în vedere că mai folosesc şi clauze. Mulţumesc pentru răspunsuri. mda, asa cum banuiam. nu stii ce-i ala index https://www.simple-t...r-index-basics/ |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users