Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc u sredjivanju kljuceva

[es] :: MySQL :: Pomoc u sredjivanju kljuceva

[ Pregleda: 2796 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nnn
Tech Lead
Haxr.io
Beograd

Član broj: 16743
Poruke: 679
93.87.179.*



+87 Profil

icon Pomoc u sredjivanju kljuceva18.05.2009. u 00:59 - pre 181 meseci
Pozdrav,

Ovako imam jednu tabelu koja ima koloku id, koja je auto increment, primarni kljuc, i jos par kolona. Taj primarni kljuc se ne koristi nigde u bazi, ali ja ga koristim u programu za neke petlje i neke stvarcice. sad posle nekog vremena postala je tabela puna rupa mislim na to da id vise ne ide jedan po jedan. npr:

id name
1 marko
2 zika
5 pera
8 blabla

a meni treba upit ili serija upita koja ce napraviti ovo:

id name
1 marko
2 zika
3 pera
4 blabla

Ja sam nesto pokusavao da pravim novu tabelu ali nisam uspeo.

Hvala na pomoci
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: Pomoc u sredjivanju kljuceva18.05.2009. u 01:11 - pre 181 meseci
Oh boze..
Pa kako u upitu da dobijes nesto sto nije moguce!? Ako kazes da ti je vrednost id 5 ta vrednost nikako upitom nece postati 17 recimo.

Za to sto mislim da zelis mozes da iskoristis najobicniju for petelju sa brojacem (u tvojoj aplikaciji) i umesto id-a stampaj vrednost brojaca...
 
Odgovor na temu

nnn
Tech Lead
Haxr.io
Beograd

Član broj: 16743
Poruke: 679
93.87.179.*



+87 Profil

icon Re: Pomoc u sredjivanju kljuceva18.05.2009. u 01:15 - pre 181 meseci
Pa ocu da sredim tabelu, znaci da od ove napravim novu koja ce imati poredjane kljuceve.
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: Pomoc u sredjivanju kljuceva18.05.2009. u 01:30 - pre 181 meseci
U tom slucaju ovako nekako...

Kreiras novu tabelu:

Code:

CREATE TABLE my_new_table (
'id' INT NOT NULL AUTO_INCREMENT ,
'name' VARCHAR(20) NOT NULL ,
PRIMARY KEY ('id')
);


I upit formulises ovako:

Code:

INSERT INTO my_new_table (name) 
SELECT name FROM my_old_table Order by some_field_asc_or_desc_or_something_else

 
Odgovor na temu

357_97

Član broj: 53056
Poruke: 104
77.46.192.*



+5 Profil

icon Re: Pomoc u sredjivanju kljuceva18.05.2009. u 01:32 - pre 181 meseci
Mislim da ce ovo pomoci
Code:
SET @var_name = 0;
UPDATE table_name SET ID = (@var_name := @var_name +1);
ALTER TABLE table_name AUTO_INCREMENT = 5;
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Pomoc u sredjivanju kljuceva18.05.2009. u 03:25 - pre 181 meseci
nnn dobio si nekoliko resenja (i sva ce da sljakaju) ... u mistorovom mozes slobodno da sortiras po starom id-u ili po cemu vec oces, 357 resenje ce da ti renumerise postojecu tabelu (ne bih savetovao ako nije neophodno)... no .. i dalje ostaje pitanje ZASTO ... ako se taj index koristi bilo gde osim u toj tabeli, integritet podataka ode u smece ... ako se ne koristi, sta te briga da li idu po redu ili ne? to sto imas rupe u id-u ne usporava rad ni na koji nacin niti te na bilo koji nacin za bilo sta sputava. mozda si pomesao to sa fragmentacijom tabele / indexa kod myisam i innodb engine-a ali to neces resiti tako sto ces izmenjati id indexa da izbegnes rupe, jedan obican optimize table ce ti rekreirati tabele i samim tim defragmentirati ih. Index ce ostati "saren", ali podaci nece biti fragmentirani, tako da - ako je to bio cilj, zaboravi renumeraciju i samo optimizuj tabelu ...
 
Odgovor na temu

nnn
Tech Lead
Haxr.io
Beograd

Član broj: 16743
Poruke: 679
93.87.179.*



+87 Profil

icon Re: Pomoc u sredjivanju kljuceva18.05.2009. u 09:52 - pre 181 meseci
Taj id se ne koristi nigde osim u jednoj funkciji u progamu, sad pitanje zasto, radi optimizacije programa da ima sto manje upita. Sad sta je u pitanju, u pitanju je bot za hostovanje igara, koji je veoma osetljiv na sql, u smislu oce da zalaguje igre kada se vrse upiti. Sad ja pravim komandu koja ce da posalje privatnu chat poruku svim igracima u bazi kada se igra hostuje, ili kada admin hoce nesto da objavi. Ako bi slozio indexe sada trenutno bi smanjio broj upita za polovinu.
Hvala u svakom slucaju veceras cu se igrati sa ovim.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Pomoc u sredjivanju kljuceva18.05.2009. u 10:10 - pre 181 meseci
cek, jel ono bese ... OSTAV .. jel tako ?

sta bre duplo manje / vise upita .. o cemu pricas ... ?!?!?

ti valjda radis upit po postojecim slogovima tabele .. ne radis valjda ti u svojoj funkciji na klijentu ... "for i=0;i<10000;i++" pa za svaki radis upit ?!?!?! pa ako ga ima u tabeli super, ako ga nema to je baceno vreme!?!?! ako to radis, presaberi se, pomnozi se pa ispocetka ... a to je jedini nacin da ja vidim da ti renumeracija moze nesto pomoci...

kakva god da ti je veza izmedju te tabele i ostatka baze, izmedju aplikacije i baze ... ne postoji realan razlog da ti bilo sta radi brze ako prenumerises taj index!!! dakle jedino objasnjenje je "jako los dizajn" ... e sad, ja jesam imao nesrecu da vidim stvarno svasta tako da je moguce da sam malo preterao, ali, realno, to moze da se resi mnooooooogo bolje, bez renumeracije!
 
Odgovor na temu

nnn
Tech Lead
Haxr.io
Beograd

Član broj: 16743
Poruke: 679
93.87.179.*



+87 Profil

icon Re: Pomoc u sredjivanju kljuceva18.05.2009. u 11:55 - pre 181 meseci
bas tako izgleda funkcija. jbg nisam ja pisao, znaci prvi nadje max id, pa onda u for petlji vraca name za svaki id od 1 do maxid. sad imam 2 opcije da menjam funkciju, ili da sredim bazu.
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: Pomoc u sredjivanju kljuceva18.05.2009. u 12:09 - pre 181 meseci
Menjaj taj kod pod hitno jer ti je isti ubica...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Pomoc u sredjivanju kljuceva18.05.2009. u 12:37 - pre 181 meseci
Citat:
nnn: bas tako izgleda funkcija. jbg nisam ja pisao, znaci prvi nadje max id, pa onda u for petlji vraca name za svaki id od 1 do maxid. sad imam 2 opcije da menjam funkciju, ili da sredim bazu.


vidi ... neko ti je gurno trn u oko, dal ces da popijes brufen ili da izvadis trn?

dakle u najbolju ruku zameni taj for sa upitom + while petljom ... i, nemoj da se cudis, mnoooooogo gore sam ja video (od ljudi koji primaju po 20K$ mesecno)
 
Odgovor na temu

loonies
~

Član broj: 40927
Poruke: 248



+12 Profil

icon Re: Pomoc u sredjivanju kljuceva18.05.2009. u 22:00 - pre 181 meseci
Citat:
bogdan.kecman: ...mnoooooogo gore sam ja video (od ljudi koji primaju po 20K$ mesecno)


Ljudi primaju 20K$ mesecno za nesto jos gore od ovoga !??
And all you touch and all you see
Is all your life will ever be
---Δ==

Neugodna istina - reaguj! | Linux is not Windows
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Pomoc u sredjivanju kljuceva18.05.2009. u 23:17 - pre 181 meseci
Citat:
mnoooooogo gore


:(
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.static.isp.telekom.rs.

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Pomoc u sredjivanju kljuceva19.05.2009. u 07:40 - pre 181 meseci
Citat:
loonies: Ljudi primaju 20K$ mesecno za nesto jos gore od ovoga !??


Oćeš primere? http://thedailywtf.com/
"Common sense is not so common." - Voltaire
 
Odgovor na temu

[es] :: MySQL :: Pomoc u sredjivanju kljuceva

[ Pregleda: 2796 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.