Reklāma:

Prezentācija: Kā pasliktināt MySQL ātrdarbību

Diezgan jauka prezentācija par to, kā pasliktināt MySQL ātrdarbību. Principā, prezentācija ir par to, kā uzlabot, taču nosaukums izvēlēts klikšķpievilcīgs. Nav jau tā, ka viss tur ir jauns un nezināms, taču diezgan daudz kas šķiet nedzirdēts, liek padomāt, kā arī pavērties tur, kur līdz šim aci metis neesi.

Šie ir tie 12 komentāri

    • #1. problogger.lv 2008. gada 30. janvārī, plkst. 14:17
    • Laba prezentācija. Prieks, ka dažas pieminētās lietas zināju, tomēr par ip glabāšanu kā INT netiku zinājis gan.

    • Saite uz šo komentāru
    • #3. Grrr 2008. gada 30. janvārī, plkst. 16:50
    • Līdzīgi (intā) var glabāt arī binārus patternus, piemēram tipisks ACL ieraksts:

      bez bināriem patterniem:

      table ACL ( who int, resource int, read_right boolean, write_right boolean, delete_right boolean)

      var apvienot kā table ACL (who int, resource int, rightmask int)

      un definēt (piemēram PHP) kodā ka:

      $READ_RIGHT=1; // binārs 001
      $WRITE_RIGHT=2; // binārs 010
      $DELETE_RIGHT=4; // binārs 100

      šinī gadījumā piešķirt userim WRITE_RIGHT (neatņemot pārējās) var ar (pseidokods SQL + PHP):

      UPDATE ACL SET rightmask = rightmask | $READ_RIGHT WHERE…

      izvēlēties userus kam ir gan READ_RIGHT un DELETE_RIGHT:

      SELECT * FROM ACL WHERE rightmask & ($READ_RIGHT | $DELETE_RIGHT) > 0

      bitmaska ir noderīga fiksēta (vai vispār potenciāli ierobežota) lieluma on/off lauku attēlošanai.

    • Saite uz šo komentāru
    • #4. Grrr 2008. gada 30. janvārī, plkst. 16:51
    • upd: atvainojos pirmais UPDATE ir protams … rightmas | $WRITE_RIGHT

    • Saite uz šo komentāru
    • #5. null 2008. gada 30. janvārī, plkst. 17:45
    • [Neko nezinot par MySQL datu tipiem]: IPv6 adreses 128 biti arī salīdīs unsigned int’ā?

    • Saite uz šo komentāru
    • #7. xor 2008. gada 30. janvārī, plkst. 19:17
    • IP adrese tiiklaa tiek paarsuutiita nevis kaa 192.168.0.1, bet gan kaa integer veertiiba 3232235521 – tapeec pilniigi normaali ir glabaat ip adreses shaadaa (datoram saprotamaakaa) veidaa.

      apreekinaashanas piemeers:
      192*256^3 + 168*256^2 + 0 * 256^1 + 1*256^0 =3232235521

      liidziigi no integer veertiibaas var dabuut IP adresi “Human Readable” formaataa :)

    • Saite uz šo komentāru
    • #9. ulzha 2008. gada 31. janvārī, plkst. 00:49
    • Protams, ja optimizācijā spiežam, tad spiežam…

      Nesapratu gan, kā tam džekam ar $last_key_where LIMIT pareizi sanāks…

    • Saite uz šo komentāru
    • #10. Grrr 2008. gada 31. janvārī, plkst. 22:44
    • ulzha – taisnība, re kā iet, kad steidzas.

      par “ierobežota”. doma bija pretstatā teiksim rights likšanai tabulas rindās 1 right per row. Bitfields ir ierobežots ar lauka bitu skaitu (un faktiski laikam ja tā padomā ar max lauka garumu, ko SQLā var apstrādāt ar bitwise operācijām), kas ir parasti ĻOTI mazāks par rowu skaitu tabulā. T.i. rowu skaits ir “neierobežotāks”, lai gan protams, ja vadās pēc tavas atsauces, nebūt ne neierobežots. :)

    • Saite uz šo komentāru
    • #11. Knaģis 2008. gada 1. februārī, plkst. 13:08
    • Grrr, priekš tā iekš MySQL jau ir gatavi tipi SET un ENUM. Kas dara tieši to pašu, tikai vērtības ļauj jau datubāzē sadefinēt.

    • Saite uz šo komentāru
    • #12. Grrr 2008. gada 2. februārī, plkst. 00:35
    • Knaģi – mans posts nebija strogo par MySQL, bet drīzāk vispār par vietas konzervēšanu. Bet jebkurā gadījumā, paldies par info.

    • Saite uz šo komentāru

Moderācija: Daži vārdi var gadīties, ka ir iz melnās listes (viagra and stuff). Tādi komentāri tiek aizturēti, pirms parādās lapā. Ja Tavs komentārs neparādās uzreizi, būs vien jāpagaida, līdz es jamo izlasīšu. Protams, ka paturu tiesības sev netīkošos komentārus dzēst, iemeslu neminot.