PDA

Pogčedajte punu verziju : Korišćenje ćirilice u MySQL bazi?


Miroslav
10. 08. 2009., 23:01
Koliko ćirilica zauzima više prostora u bazi od latinice?

Da li ne neki način može da uspori korišćenje baze (da li je pretraga možda sporija)?

Naime, imam mnogo tekstova koji moraju da budu ćirilični ali ne znam koliko je pametno da ih sve čuvam u bazi u ćiriličnom pismu.
Ja bi ih sve preveo u latinicu pri upisivanju, a pri čitanju bi ih vratio u ćirilicu ali ne mogu jer se pojavljuju i neke strane reči (na ruskom).

mileusna
10. 08. 2009., 23:38
Praktičnije je držati tekstove u ćirilici u bazi i preslovljavati ih na latinicu prilikom prikaza nego obrnuto, ako već imaš materijal na ćirilici.

Ako recimo imaš u bazi "Facebook је купио FriendFeed" onda će prilikom preslovljavanja na latinicu rečenica glasiti "Facebook je kupio FirendFeed". Sa druge strane, ako imaš latiničnu verziju u bazi i presloviš je na ćirilicu dobićeš "Фацебоок је купио ФриендФеед".

Što se tehničkog aspekta tiče, ne verujem da će ti ćirilica praviti neke probleme. Kada kažeš "mnogo" tekstova koliko je to mnogo? Kada kažeš "pretraga" na šta konkretno misliš, postoji više načina da se baza pretraži. :)

Miroslav
11. 08. 2009., 12:31
Da. Iz tvog primera se jasno vidi da je ćirilica dosta praktičnija za čuvanje u bazi u ovom mom slučaju.

Nego ako sam dobro razumeo, ćirilični karakteri su "multibyte" karakteri, pa sam zato zaključio da će zauzimati više mesta u bazi. Recimo ako neki tekst na ćirilici zauzima 50 kb na latinici može da zauzme 25 kb? Možda grešim s obzirom da se ne razumem baš najbolje u baze...

sinisabobic
11. 08. 2009., 15:33
Sve zavisi na koji način to čuvaš u bazi. Pošto pretpostavljam da ćeš odabrati UTF-8 koji je ASCII kompatibilan encoding onda će svi ASCII karakteri (a, b, c, d, ...) zauzimati 1 bajt dok će ostali zauzimati 2 bajta (š, ш, đ, ђ, ...).

robi-bobi
11. 08. 2009., 15:40
osim ako bas nemas neki doooobar razlog za suprotno, moj savet je da ovo ne razmatras kao problem

cirilica vs latinica razmatraj sa svih drugih aspekata osim ovog :)

razlika u velicini nije toliko bitna
rad sa cirilicom je lagan (mysql radi lepo str operacije, a uz (po zelji ) podesen php - mozes koristiti i 'obicne' PHP funkcije za rad sa stringovima)

dinke
11. 08. 2009., 16:36
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

http://www.joelonsoftware.com/articles/Unicode.html

(po ko zna koji put ali dobro)

akubra
13. 08. 2009., 11:50
Тхе Трутх оф Оур Фаитх:

http://www.manastir-lepavina.org/vijest_cir.php?id=3555

(originalni tekst: http://www.manastir-lepavina.org/vijest.php?id=3555 )


Naravoučenije, bolje izbegavati pretvaranje ćirilice u latinicu i slične egzibicije, ukoliko nisi potpuno siguran da znaš šta radiš i da ti je to neophodno.

nn.nn
13. 08. 2009., 12:04
^ Transliteracija ćirilice u latinicu je trivijalna stvar, a ovi primeri koje si naveo odnose se na obrnut smer.

Miroslav
13. 08. 2009., 12:26
Sve zavisi na koji način to čuvaš u bazi. Pošto pretpostavljam da ćeš odabrati UTF-8 koji je ASCII kompatibilan encoding onda će svi ASCII karakteri (a, b, c, d, ...) zauzimati 1 bajt dok će ostali zauzimati 2 bajta (š, ш, đ, ђ, ...).

Odabrao sam:
DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci