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

Index: int ili char(2) ili char(4)

[es] :: MySQL :: Index: int ili char(2) ili char(4)

[ Pregleda: 1537 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bjevta
Bratislav Jevtic
http://www.tojesoft.co.rs
Beograd

Član broj: 5216
Poruke: 367
*.static.sbb.rs.

Sajt: www.tojesoft.co.rs


+5 Profil

icon Index: int ili char(2) ili char(4)11.06.2012. u 10:36 - pre 143 meseci
imam neki enum (STATUS objekta) koji je:

1. vrlo bitan za search query-je, ima ga u vise indexa.
2. po njemu (toj koloni) ce se vrsiti particionisanje
3. mapira se u tabelu kao varchar(20)

da li da:

a) skratim mapiranje enuma na CHAR(4). time bih zadrzao "citljivost" tabela ako kucam rucni SQL. tako bi duzina kolone bila kraca od masinske reci, tj, bila bi koliko i jedan INT pa bi performanse search upita bile iste kao da koristim INT za mapiranje STATUS-a

b) mapiram STATUS kao INT jer je INT index uvek brzi od CHAR index-a

c) mapiram STATUS kao CHAR(1) jer je to najkompaktniji moguci index koji je brzi i od INT-a a i zgodno je da bude sto manji zbog particionisanja

dakleM, sta da radim? btw, MySQL 5.5
Acta, non verba!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Index: int ili char(2) ili char(4)11.06.2012. u 15:13 - pre 143 meseci
tinyint ili char(1)
 
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: Index: int ili char(2) ili char(4)12.06.2012. u 08:33 - pre 143 meseci
Zašto ne bi koristio ENUM tip? To je super čitljivo.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

bjevta
Bratislav Jevtic
http://www.tojesoft.co.rs
Beograd

Član broj: 5216
Poruke: 367
*.static.sbb.rs.

Sajt: www.tojesoft.co.rs


+5 Profil

icon Re: Index: int ili char(2) ili char(4)12.06.2012. u 08:41 - pre 143 meseci
...zato sto bih morao da se zezam s hibernate-om, morao bih da radim migraciju, itd.

nesto ne bih sve odjednom.

a, i ovako moram da se zezam s upitima jer sa particionisanjem nema foreign key-eva; join -> where
Acta, non verba!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Index: int ili char(2) ili char(4)12.06.2012. u 09:58 - pre 143 meseci
ko ti brani da koristis join ako nema fk-a ?

a taj hibernate ... $#@&@# framwork koji te tera da se prilagodjavas njemu umesto da se on prilagodjava tebi
 
Odgovor na temu

bjevta
Bratislav Jevtic
http://www.tojesoft.co.rs
Beograd

Član broj: 5216
Poruke: 367
*.static.sbb.rs.

Sajt: www.tojesoft.co.rs


+5 Profil

icon Re: Index: int ili char(2) ili char(4)12.06.2012. u 10:26 - pre 143 meseci
plus, Shinhane, isti kod treba da radi i na MSSQL-u

bogdane, tera me hibernate da koristim where ako nema relacije. nema relacija, nema join! a na hibernate me tera shef.

sreca pa sam uber-prilagodljiv ;)

Acta, non verba!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Index: int ili char(2) ili char(4)12.06.2012. u 10:40 - pre 143 meseci
hahahah to $%@#%&_ of frameworka ti ne da da napises join ako nemas strane kljuceve ... kakav imbecilitet ne mogu da verujem .. i to neko koristi ?!?!?!?!

zar nije to $@_&@ umrlo? zar ga nije zamenio neki bolji projekat sa novim imenom?
 
Odgovor na temu

bjevta
Bratislav Jevtic
http://www.tojesoft.co.rs
Beograd

Član broj: 5216
Poruke: 367
*.static.sbb.rs.

Sajt: www.tojesoft.co.rs


+5 Profil

icon Re: Index: int ili char(2) ili char(4)12.06.2012. u 10:58 - pre 143 meseci
ako je izmedju 2 hibernate objekta definisana relacija, na primer, tipa Parent-Child, onda se pise:
from Parent parent join parent.children where children.genger = 'M'

ako nema relacije, onda mora da se koristi old fashion join preko where-a:
select parent from Parent parent where parent.id=child.parentId and child.gender = 'M'

... jer hibernate mora da zna da postoji veza. e, sad, posto su svi upiti u gornjem (kompaktnijem) stilu, onda moram da ih prepravljam. tako je to kad se koriste OR mapperi.

mnogo veci problem je sto ne mogu da forsiram index kod select-a, kako napisati query a da radi na svim bazama, itd.

moze biti da postoje bolji OR mapperi, al' cenim da se placaju. i tako, sto je dzabe...


Acta, non verba!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Index: int ili char(2) ili char(4)12.06.2012. u 11:05 - pre 143 meseci
ne znam sta bih ti rekao, mislim da nemamo nijednog klijenta vise sa hibernate-om, nemam ja ni inace nesto dodira sa njima ali znam da nisam bar godinu dana video ni jedan issue koji je spominjao hibernate ... valjda su skontali :D

a to sto se tice "kak oda radi na svim bazama" na zalost, ne postoji efektivan nacin koji je jednostavan. Jedini efektivan nacin za koji ja znam je da postoji kopija DB layer-a za svaku bazu posebno. Uopste nije mali posao ali .. jedini nacin .. a i to nije 100% efektivno posto ako hoces da maximizujes iskoristenje neke baze mozes da koristis fore i fazone za tu bazu, a to nece raditi na drugoj, a sad da imas strukturu date razlicitu u razlicitim db layerima to vec suvise dize komplikovanost aplikacije da bi imalo smisla

 
Odgovor na temu

bjevta
Bratislav Jevtic
http://www.tojesoft.co.rs
Beograd

Član broj: 5216
Poruke: 367
*.static.sbb.rs.

Sajt: www.tojesoft.co.rs


+5 Profil

icon Re: Index: int ili char(2) ili char(4)12.06.2012. u 11:37 - pre 143 meseci
tacno tako. stvari se prilicno komplikuju kad isti kod treba da radi sa razlicitim backend-ovima.

jedan nacin da se baza iskoristi do maximuma jeste da se DB layer overrajduje specificnostima svake, upiti, itd. sa Hibernate-om nisam uocio tu mogucnost a da kod bude cist. jedno sto mogu da variram je create scripta za bazu u okviru koje malo zongliram sa indexima i tipovima podataka, koliko moze.

drugi nacin jeste da se koriste stored procedure. onda OR mapper zove proceduru koja odradi sta treba i kako treba. medjutim, SP znaci da se, pre ili kasnije, deo logike delegira bazi. to neko ne voli pa ne da!

ovako, niti je kod optimalan, niti je baza optimalna.



[Ovu poruku je menjao bjevta dana 12.06.2012. u 12:48 GMT+1]
Acta, non verba!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Index: int ili char(2) ili char(4)12.06.2012. u 12:15 - pre 143 meseci
tome sluzi OO :D lepo napravis klasu u kojoj su ti stvari koje su iste za sve, pa onda odatle pravis specificne implementacije za mysql, oracle, pgsql ... i onda imas sve nabudzeno 100% :D ...

a to za biznis logiku na bazi - slazem se 100% da je losa ideja .. to je bilo cool tamo pocetkom devedesetih ... danas ... jok ..
 
Odgovor na temu

[es] :: MySQL :: Index: int ili char(2) ili char(4)

[ Pregleda: 1537 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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