Официальный сайт движения «Москва без Лужкова!»
Главная Новости Москвы Наши новости Популярное
  • Новости
  • Новости
  • ВХОД В ЛИЧНЫЙ КАБИНЕТ
    логин
    пароль
       
    Новости

    Аптымізацыя MySQL, optimize table - як не трэба рабіць

    1. Калі варта ўжываць каманду optimize table для блога

    У блогасферы парады па паскарэнню работы сайта і аптымізацыі разносяцца з шалёнай хуткасцю У блогасферы парады па паскарэнню работы сайта і аптымізацыі разносяцца з шалёнай хуткасцю. Пры гэтым мала хто з аўтараў правярае рэальную карыснасць атрыманых саветаў. Гэта ўдвая дзіўна, таму як магчымасць праверыць правільнасць той ці іншай ідэі і параўнаць розныя меркаванні па адным і тым жа пытанні ў Інтэрнэце прадстаўлена вельмі шырока.

    У адным з блогаў сустрэла вось такі тэкст:

    Канкрэтны прыклад з жыцця: 2 табліцы па 50 000 запісаў, у якіх увесь час ідуць update, insert, delete. Ясная справа, што пры такім падыходзе дадзеныя фрагментируются. Таму, калі мы робім JOIN, то запыт выконваецца 0.2 секунды - даволі шмат для базы дадзеных. Пасля optimize table запыт стаў выканаюцца 0.015 сек. Ніякіх дадатковых індэксаў, пакупкі жалеза - проста ўпарадкавалі дадзеныя на дыску. Каманду можна паставіць у cron раз у суткі, напрыклад.


    Мая ўвага адразу зачапілася за тое, што аўтар робіць дадзеную працэдуру раз у суткі, а іншыя чытачы толькі на лічбы хуткасці выканання запыту ўвагу звяртаюць. А між тым, у аўтара напісана, што ў яго ў суткі па 50 тысяч запісаў мяняюцца, ці можа гэтым пахваліцца ваш блог? Няма? Тады навошта вы ўжываеце савет, які вам не падыходзіць?

    І вось тысячы блогераў Пост сабе карысную каманду optimize table і рэкамендуюць ўсім сваім чытачам карыстацца ёю не радзей разу ў тыдзень. Хто-небудзь з іх пачытаў навошта патрэбна гэтая каманда, што яна робіць, чаго яна не можа зрабіць і ці варта яе ўжываць для блогаў?

    Зазірнем сюды - MySQL - даведачнае кіраўніцтва на рускай . І знойдзем такі пункт, які тычыцца optimize table, цытую:

    4.5.1. Сінтаксіс каманды OPTIMIZE TABLE
    OPTIMIZE TABLE tbl_name [, tbl_name] ...

    Каманда OPTIMIZE TABLE павінна выкарыстоўвацца пасля выдалення большай частцы табліцы або калі ў табліцы было ўнесена шмат змяненняў у радкі зменнай даўжыні (табліцы, у якіх ёсць слупкі VARCHAR, BLOB або TEXT). Выдаленыя запісу падтрымліваюцца пры дапамозе сувязнога спісу, і наступныя аперацыі INSERT паўторна выкарыстоўваюць пазіцыі старых запісаў. Каб пераразмеркаваць невыкарыстоўваемую прастору і дэфрагментаваць файл дадзеных, можна скарыстацца камандай OPTIMIZE TABLE.
    На дадзены момант каманда OPTIMIZE TABLE працуе толькі з табліцамі MyISAM і BDB. Для табліц BDB каманда OPTIMIZE TABLE выконвае ANALYZE TABLE.
    Можна ўжыць OPTIMIZE TABLE да табліцах іншых тыпаў, запусціўшы mysqld з параметрам -skip-new ці -safe-mode, але ў гэтым выпадку OPTIMIZE TABLE толькі толькі выконвае ALTER TABLE.
    Каманда OPTIMIZE TABLE працуе наступным чынам:
    * Калі ў табліцы ёсць выдаленыя або падзеленыя радкі, аднаўляе табліцу.
    * Калі індэксны старонак без адсартаваныя - сартуе іх.
    * Калі статыстычныя дадзеныя не абноўленыя (і аднаўленне нельга ажыццявіць шляхам сартаваньня індэксаў), абнаўляе іх.

    Каманда OPTIMIZE TABLE для MyISAM ўяўляе сабой эквівалент выканання myisamchk -quick -check-only-changed -sort-index -analyze над табліцай.
    Звярніце ўвагу: падчас працы OPTIMIZE TABLE табліца заблакаваная!

    На такія спасылкі блогеры крыўдзяцца, тупаюць нагамі і крычаць, што пачаткоўцам ніхто не дапамагае. Пачаткоўцы, вучыцеся дапамагаць сабе самі, усе самыя важныя і карысныя веды можна запазычыць з прафесійнай літаратуры, а не ў блогах такіх жа пачаткоўцаў.

    У вызначэнні усё выразна і ясна напісана. Каманда optimize table ўжываецца для табліц, у якія было ўнесена шмат змяненняў. Шмат - гэта не 12 каментароў і 4 пасты, гэта некалькі тысяч. А фраза пра тое, што падчас выканання каманды optimize table табліца будзе заблакаваная нам пра што гаворыць? Калі табліца заблакаваная, значыць і сайт, які працуе з гэтай табліцай таксама будзе не працаздольны. Табліца будзе заблакаваная цалкам, нават калі аптымізаваць будзе толькі той слупок, што адказвае за каментары. Адсюль пытанне, навошта запускаць гэтую каманду кожны дзень?

    Калі на вашым сайце адзін аўтар і адключаныя каментары, вам наогул падобная каманда можа не спатрэбіцца. Калі ў вас шмат каментароў і вялікая частка з іх выдаляецца па прычыне спаму, можа спатрэбіцца правесці аптымізацыю, але гэта працэдура разавая.

    Калі варта ўжываць каманду optimize table для блога

    1. Калі ў вас выдаляецца або змяняецца вялікая колькасць артыкулаў або каментароў (вялікая колькасць - гэта некалькі тысяч).
    2. У гадзіны, калі наведвальнасць вашага сайта самая нізкая.

    PS Не бойцеся звяртацца за радай да першакрыніц і прафесійнай літаратуры.

    падобныя артыкулы

    А між тым, у аўтара напісана, што ў яго ў суткі па 50 тысяч запісаў мяняюцца, ці можа гэтым пахваліцца ваш блог?
    Няма?
    Тады навошта вы ўжываеце савет, які вам не падыходзіць?
    Хто-небудзь з іх пачытаў навошта патрэбна гэтая каманда, што яна робіць, чаго яна не можа зрабіць і ці варта яе ўжываць для блогаў?
    Адсюль пытанне, навошта запускаць гэтую каманду кожны дзень?

     

    Найди свой район!

    Восточный

    Западный

    Зеленоградский

    Северный

    Северо-Восточный

    Северо-Западный

    Центральный

    Юго-Восточный

    Юго-Западный

    Южный

    Поиск:      


     
    Rambler's Top100
    © 2007 Движение «Москва без Лужкова!»