ПредишенСледващото

Фактът, че на масите, които се използват за нуждите на двигателя, данните се променят непрекъснато. Маса, ако те не са оптимизирани, ще работи малко по-бавно. Ако имате малък сайт, а след това може би не забележите разликата. И ако един голям товар? Веднъж се сблъскват с факта, че моите клиенти имат проблем със сайта е твърде provayderom- зареди MySQL. Оказа се, че на изхода на една страница (това е интернет магазин OS Commerce), са генерирани над 120 заявки. В някои случаи, дори и повече от 200 тона. И тъй като гостите бяха много (като отидете на хиляда), базата данни не могат да се справят. Беше необходимо да се оптимизират кода, въпреки че не беше лесно.

Може да се обобщи, че имате нужда да дефрагментирате таблицата (като PHP код, разбира се :)).

Сега, за което маси за оптимизиране. В първата, вида трябва да е MyISAM или ББР. На второ място, сред полетата трябва да бъде тип VARCHAR, BLOB или текст. Аз разбирам, че в други случаи, оптимизация не е необходимо.

екип оптимизация е проста:

ОПТИМИЗИРАНЕ НА МАСА таблица_име

Това е суров вариант за предаване на всички съществуващи таблици. Дефрагментиране на MySQL таблици. Но ние трябва да се отбележи, че по време на оптимизацията на масата ще бъде заключена. Какво означава това, аз не знам, трябва да разберете повече. Тъй като процесът отнема част от секундата, тогава вероятността, че потребителите ще забележат нещо малко.

Как мога да разбера дали оптимизация е необходимо? Кой е работил с myphpadmin, знаете, че можете да видите много информация за масата. Не е трудно да се направи от себе си. Има такова команда SHOW TABLE статус. Изходните данни изглеждат Data_free, тя ще се изисква номер. Ако тя е по-голяма от 0, оптимизацията нуждае. Това се каза, вариантът е по-тънък.

Примерен код, за да се определи дали е необходимо оптимизиране:

ако ($ data_info = get_rows ( "Показване на таблица на")) foreach ($ data_info като $ ди) ако ($ ди [ 'Data_free']> 0) $ tmp1. = 'Оптимизиране маса. $ ди [' Име '] . "

";
> // за ди
>

ако (! празен ($ tmp1)) $ TPL_main. = $ tmp1.оптимизирам (По това време маса е заключена, посетителите могат да представляват проблем)
";

Аз get_rows функция взема данните от базата данни и да го поставя в масива.

Т.е. SHOW TABLE СТАТУТ връща информация за всички таблици в базата данни.

В кода, не съм проверка на MyISAM маса, но сега, като правило, те се използват за провеждане.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!