Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki,

 

Pastebėjau, kad var/lib/mysql ibdata1 failiukas užima pas mane 700 MB. Kiek skaičiau tai yra kaip ir MYSQL InnoDB lentelių failas. Galima jį ištrint, bet reikia backupus pasidaryt, bet tenais jaučiu ne viskas išsitrina, paskiau kaip įdėsi ne viskas įsidės, papraščiau būtų tiesiog šitą failą jeigu eitų išvalyt ir palikt tik pagrindinius dalykus.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki,

 

Pastebėjau, kad var/lib/mysql ibdata1 failiukas užima pas mane 700 MB. Kiek skaičiau tai yra kaip ir MYSQL InnoDB lentelių failas. Galima jį ištrint, bet reikia backupus pasidaryt, bet tenais jaučiu ne viskas išsitrina, paskiau kaip įdėsi ne viskas įsidės, papraščiau būtų tiesiog šitą failą jeigu eitų išvalyt ir palikt tik pagrindinius dalykus.

 

Tai koks klausimas?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu dar vieną klausimą ar turi kažkokių pasekmių tai, kad tarkime lentelėje yra daug įrašų, tarkime žaidėjų kiekvienam žaidėjui užsiregistravus yra įrašoma į duomenų bazę o dabar kažkur yra apie 40.000. Nu, bet ten iš esmės nėra tokių užklausų, kad keiščiau visų žaidėjų kažką, o ten arba vienam arba keliam žaidėjam. Bet jeigu tarkime ištrinčiau 20.000 žaidėjų ar kažkas pasikeistų ar čia neturi tai prasmės, kad ir milijonas gali būt?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu dar vieną klausimą ar turi kažkokių pasekmių tai, kad tarkime lentelėje yra daug įrašų, tarkime žaidėjų kiekvienam žaidėjui užsiregistravus yra įrašoma į duomenų bazę o dabar kažkur yra apie 40.000. Nu, bet ten iš esmės nėra tokių užklausų, kad keiščiau visų žaidėjų kažką, o ten arba vienam arba keliam žaidėjam. Bet jeigu tarkime ištrinčiau 20.000 žaidėjų ar kažkas pasikeistų ar čia neturi tai prasmės, kad ir milijonas gali būt?

 

Trink, kurk ar keisk - viso sito itaka priklauso tik nuo tavo DB strukturos, jeigu yra tight coupling, tada kaska istrynus kaskas gali neveikti. Neina i tavo klausima taip imt ir atsakyt nezinant nieko apie tavo DB.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu dar vieną klausimą ar turi kažkokių pasekmių tai, kad tarkime lentelėje yra daug įrašų, tarkime žaidėjų kiekvienam žaidėjui užsiregistravus yra įrašoma į duomenų bazę o dabar kažkur yra apie 40.000. Nu, bet ten iš esmės nėra tokių užklausų, kad keiščiau visų žaidėjų kažką, o ten arba vienam arba keliam žaidėjam. Bet jeigu tarkime ištrinčiau 20.000 žaidėjų ar kažkas pasikeistų ar čia neturi tai prasmės, kad ir milijonas gali būt?

 

Irasu kiekis turi itakos, kuo daugiau duomenu, tuo daugiau duomenu baze turi atlikti patikru, taciau:

  1. jei atliekamos queries pagal Primary Key, duomenu baze mokes greit surasti rezultata.
  2. jei atliekama pagal daugiau nei viena stulpeli:
    • jei visi stulpeliai yra apimti su indexais - uz 1. varianta uztruks paprastai ilgiau, bet vistiek gan greitai (priklausys nuo page-hit)
    • jei yra stulpeliu, kurie neapimti su index - galimai tures skaityti visus irasus, kol suras rezultata.

MySQL nelabai megsta dideles (daug stulpeliu) lenteles. Tad del greicio, jei lentele turi daug stulpeliu, apsimoka ja isskirti i kelias mazesnes lenteles (bet atsargiai, kad nesusidarytu perdidelis JOIN overhead).

 

Kaip Ispirit sake, nezinant tikslesniu duomenu apie DB struktura, sunku ka tiksliau pasakyti.

Redagavo Imago
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kaip suprast neapimti su index kaip galima apimt su juo? Kokia struktūra, pirkau VPS, davė linką man kur siūstis, kad įrašyt mysql į VPS tai ten nieko nebuvo kažko keista iš nustatymų, tai ką ten reikia pakeist?

Kiek suprantu esi visiskas naujokas kai kalba eina apie Databases, tad arba pradek skaityti knygas nuo pat pradziu ir mokytis arba susirask kas ta jau padare.

 

Del indexu, siek tiek info: http://stackoverflow.com/a/1130/4099033

 

 

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ištryniau iš tų 40.000 12.000 kažkur ir pagreitėjo užklausos buvo kažkur greitis apie 1.4 sec. dabar 0.9 sec. Tai vadinasi kiekis turi prasmę. O tai dabar aš nepagaunu, jeigu būtų didelis serveris jame 1 milijonas vien vartotojų įrašų tai visus prascenuot, kad ir nedaug lentelių, tvarkingos būtų vistiek nemažai laiko užtruktų tai ką tada kiti daro, kaip jie uždturbina tą mysql?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ištryniau iš tų 40.000 12.000 kažkur ir pagreitėjo užklausos buvo kažkur greitis apie 1.4 sec. dabar 0.9 sec. Tai vadinasi kiekis turi prasmę. O tai dabar aš nepagaunu, jeigu būtų didelis serveris jame 1 milijonas vien vartotojų įrašų tai visus prascenuot, kad ir nedaug lentelių, tvarkingos būtų vistiek nemažai laiko užtruktų tai ką tada kiti daro, kaip jie uždturbina tą mysql?

 

Du dalykai: hardware ir table structure. Aplamai, arba pas tave queries yra labai prastos arba serveris praeito amziaus, nes toks mazas duomenu kiekis neturetu turet jokios itakos.

 

Kaip pvz. pas mane ant kompiuterio atlikti query su keliais join ant DB su keliolika milijonu irasu trunka ~0.003sec.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jei paprastai: galima uzdeti index ant lenteles stulpeliu (http://dev.mysql.com/doc/refman/5.0/en/create-index)

 

 

Ka tai padaro: database sukuria papildomas lenteles (kuriu tu nematai), kuriose padaro kopija su informacija is stulpeliu su index ir ja surusiuoja.

 

Pliusai:

  • (beveik visad) daug greitesne duomenu paieska, jei tavo query naudoja tik tuos stulpelius, kurie turi index;
  • (daznai) greitesne paieska, jei WHERE yra naudojami tik stulpeliai su index
    • greitis priklausys nuo to kaip tavo query optimizuos pati DB ir reikiamo IO kiekio bei page-hit

Minusai:

  • letesni INSERT/DELETE, nes visad tures atnaujinti ne tik pagrindine lentele, bet ir index'u
  • letesni UPDATE, jei yra pakeiciami index stulpeliai
  • uzimama vieta, nes DB turi padaryti kopija visos info, kuri yra apimta su index.

 

Cia tik trumpa apzvalga, del platesnes info turi pasiskaityti, ypac, kaip reiktu testuoti ir naudoti irankius, kurie gali patarti, kur reiktu deti tuos index

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ne nu tai aš į phpmyadmin sql sekciją įrašiau SELECT * FROM players WHERE Vardas='Vardas_Pavardenis' Nu tai kaip jinai gali būt sena ar ne tokia? hardware tai čia disko vieta? pas mane 25Gigai yra VPS 16 užimta tai nematau bėdos šiaip. Serveris tai jis normalus viskas siūstasis kaip ir priklauso kaip ir visi siunčiasi ką čia primastysi. Lentelių struktūra, tai čia jeigu man reikia skaičių tai nurodau int, jeigu reikia kažkokį tekstą varchar su ilgiu kiek man reikia tai ką čia gali kitaip dar padaryt?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ne nu tai aš į phpmyadmin sql sekciją įrašiau SELECT * FROM players WHERE Vardas='Vardas_Pavardenis' Nu tai kaip jinai gali būt sena ar ne tokia? hardware tai čia disko vieta? pas mane 25Gigai yra VPS 16 užimta tai nematau bėdos šiaip. Serveris tai jis normalus viskas siūstasis kaip ir priklauso kaip ir visi siunčiasi ką čia primastysi. Lentelių struktūra, tai čia jeigu man reikia skaičių tai nurodau int, jeigu reikia kažkokį tekstą varchar su ilgiu kiek man reikia tai ką čia gali kitaip dar padaryt?

 

Manau uzteks cia mums atsakinet, laikas tau susirast zmogu, kuris tau sutvarkyti viska kas blogai galetu, nes tavo zinios per mazame lygyje, kad pats tai pasidarytum.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jūsų PHP MySQL bibliotekos versija 5.1.66 skiriasi nuo Jūsų MySQL serverio versijos 5.5.40. Tai gali sukelti nenuspėjamą elgesį.

 

Čia šitą klaidą rodžiau savo VPS tiekėjams, bet ten nebuvo tokio tikslaus atsakymo, vieni sako atsinaujint apt-get update tiksliai ne taip, bet kažkaip, bet sako gali būti dar blogiau. Kiti sako, kad 5 versija viskas čia gerai. Toliau pasakiau, kad turiu sa-mp projektą ir tenais yra jungiamasi prie duomenų bazės sako, kad taip ir reikėjo sakyt, tuoj pasakysiu ką daryt, bet taip ir nesulaukiau atsakymo. Tiesiog papraščiausias būtų klausimas ar galima taip palikti ir tai neturi jokios įtakos mysql serveriui? ar kitu atveju būtina atsinaujinti, kad mysql serveris daug sklandžiau veiktų. Kaip ir neradau googlei atsakymų, kad kažkokią nuomonę eitų darytis.

Redagavo audriuslio
Nuoroda į pranešimą
Dalintis kituose puslapiuose

'PHP MySQL' ir 'MySQL' versiju skirtumas netures itakos duomenu bazes greiciui, gali tik kilti suderinamumo klaidu (placiau del problemu reiktu pasiskaityti).

 

PHP tiesiog sugeneruoja queries, kurias siuncia i MySQL serveri, serveris pagal query sugeneruoja rezultata, PHP gavusi rezultata ji apdoroja ir pristato tokiu budu, kad galetum su juo dirbti.

 

Tau reikia tiesiog gerai susikonfiguruoti MySQL serveri, naujausios MySQL versijos turi daug nustatymu, kurie padeda isspausti viska is serverio (ypac multi-threading).

 

Daugiau tingiu atsakineti, nes matau kad tau truksta net minimaliu ziniu apie DB, tad tiesiog pasikartosiu - nusisamdyk kanors, kas pades (nebutina profesionalo, uzteks ir kokio tai studento, kuris turi bent pradmenis ir zino kaip surasti platesnes info, bei ja pritaikyti)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

OPTIMIZE TABLE tarkim noriu lentelę kokią optimizuot tai ką iš esmės tą optimizavimas padaro neištrina kokių nors tenais mano įrašytų duomenų ar ką iš esmės čia pakeičia tas optimizavimas lentelės.

 

 

Google'i suvedi ir skaitai, kas parašyta, išmok naudotis google, o ne klausinėk, ką reiškia kiekvienas naujas žodis, kurį pamatai, nes ką tu paklausti jau yra atsakyta N kartų (su aiškiais paaiškinimais netgi) tiek stackoverflow tiek kituose forumuose. Tereikia parašyti "what is optimize table mysql" ar kažkaip panašiai, google visagalis

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...