Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...

Kanal D va difuza serialul “...

Upgrade xiaomi mi11
 securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...

De unde cumparati suspensii / gar...

[UNDE] Reconditionare obiecte lemn
 Infiltratii casa noua

sugestie usa interior

ANAF si plata la selfpay

Imprimanta ciss rezista perioade ...
 Garmin fēnix 7 / PRO / Saphi...

Care sunt cele mai mari regrete a...

Alfa Romeo Stelvio 2.2 jtd

Intrebari srl nou
 

[SQL] Count records or update + 1 ?

- - - - -
  • Please log in to reply
11 replies to this topic

#1
Chintus2020

Chintus2020

    Junior Member

  • Grup: Members
  • Posts: 88
  • Înscris: 01.04.2015
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
Kroghy

Kroghy

    Guru Member

  • Grup: Senior Members
  • Posts: 15,974
  • Înscris: 06.01.2006
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
Chintus2020

Chintus2020

    Junior Member

  • Grup: Members
  • Posts: 88
  • Înscris: 01.04.2015
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
sorin147

sorin147

    Senior Member

  • Grup: Senior Members
  • Posts: 6,361
  • Înscris: 11.08.2003
Cat de des folosesti acele statistici ca sa merite inca un tabel si o "intarziere" la fiecare insert, delete?

#5
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,235
  • Înscris: 24.02.2007

View PostChintus2020, 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
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,026
  • Înscris: 24.02.2006
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
yonut_a

yonut_a

    Trala la la la

  • Grup: Senior Members
  • Posts: 3,947
  • Înscris: 03.08.2008
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
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,235
  • Înscris: 24.02.2007

View Post_Smiley_, on 01 aprilie 2015 - 20:25, said:

o sa ratezi unele operatiuni

Pune si el un trigger daca face asa ceva, nu scrie update-ul dupa fiecare query de insert.

#9
Chintus2020

Chintus2020

    Junior Member

  • Grup: Members
  • Posts: 88
  • Înscris: 01.04.2015
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
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.

Edited by Chintus2020, 01 April 2015 - 21:03.


#10
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,235
  • Înscris: 24.02.2007
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
yonut_a

yonut_a

    Trala la la la

  • Grup: Senior Members
  • Posts: 3,947
  • Înscris: 03.08.2008
nu se uita la indexul cel mai mare, rolul indexului este de a gasi mai usor informatia de disc

#12
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,026
  • Înscris: 24.02.2006

View PostChintus2020, 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

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate