Якщо у вас велика відвідуваність на сайті, то значить, безліч людей читають ваші статті (це добре). Це призводить до того, що до бази йде величезна кількість запитів (це не дуже добре).
І що ж ми будемо з цим робити? Кращий спосіб - це кешування результатів, які дістаються з бази. Таким чином, коли перший користувач відкриє статтю, вона витягне з бази, а ось в наступні рази вона буде показуватися з кешу. Ця техніка дозволить MySQL сервера трохи відпочити або сконцентрувати свою міць на інші справи.
Існує велика кількість кеш-механізмів, але ми створимо свій. У більшості випадків, його буде достатньо.
Створимо спеціальний клас:
Збережіть цей код у файлі cache.php
Код досить-таки простий, тому я не буду пояснювати його роботу. Хіба що, зазначу, що ми використовуємо функції serialize і unserialize, які перетворюють будь-який об'єкт в рядок і навпаки.
Ось як ми можемо використовувати наш клас:
Цей код дозволить значно скоротити кількість запитів до бази даних. Але тут є нюанс! При будь-якій зміні в статті, необхідно скинути кеш (видалити його) для того, щоб створився новий. Для поновлення можете використовувати цей код:
Коли ви видалите кеш, то нова версія статті з'явиться на сайті. І все буде добре!
По-моєму робота з файловою системою - трудомістка штука, треба заміряти час і вирішити об'єктивно. Навіщо клас? Незручно адже. Можна створити ф-ції cache ($ filename) для читання і cache ($ filename, $ data) для запису / видалення. Можна ж створювати однойменні ф-ції з різним набором аргументів? Чому багато хто думає, що об'єкти - це круто? Круто, але все добре в міру.
Денис Ніканоров
А що круто. за допомогою об'єктів можна наприклад розмежувати доступ, але іноді деякі захоплюються і виходить дуже громіздкий код. використання ООП також має купу плюсів і в складних проектах краще використовувати ООП, хоча можна обмежиться іноді і просто набором функцій. І ще такий підхід важливий у MVC!
Саме тут ООП зайве.
Вітаю! Я може і не по темі, але думаю що тут люди в mysql нишпорять. Хотів дізнатися чому коли я через форму занаша дані в БД у мене в БД заноситься порожня клітинка. Та й перевірка через IF ELSE показує що дані в БД додані. Та й до речі не заносяться тільки якщо через форму тобто через змінну! хоча заноситься через форму але заноситься як порожня клітинка, а якщо через код на пряму писати то заноситься все відмінно!
код запиту повинен бути коректний, з'єднання активно, неймпоцепін, при потребі, застосований. сформуйте код запиту в окремій змінної і виведіть його в файл або в браузер. текстові записи в цьому коді обов'язково повинні бути укладені в програмістські лапки і їх текст оброблений за допомогою mysql_real_escape_string (). простіше буде, якщо приведете код запиту
1. може, тут має сенс зробити більш витончено? також і з записом: 2. невелике доповнення для новачків даний клас можна досить просто використовувати в класі роботи з mysql (який обов'язково повинен бути). тільки імена файлів потрібно генерувати автоматично (для простоти), припустимо, за допомогою md5-запиту. 3. можна кешувати не всі запити, а тільки особливо загальмувати, що дасть просто чумовой виграш в продуктивності. крім того, не можна кешувати дані, які повертають, припустимо, випадкові вибірки з БД (ну це зрозуміло). 4. якщо використовувати memcache, швидкість зросте багаторазово. правда, на віртуальних серверах таке навряд чи хто робить.
Насправді не все так просто. При збільшенні кількості вставки / вилучення дані будуть псуватися, тому що в коді відсутня блокування файлу при читанні / запису і один процес може зчитувати дані в той момент, коли інший процес буде писати в той же файл.
international
в версії php 5.5+ не проходить через серіалайз половина даних через що даний метод не є підходящим.
Що за жах! Робота з файлами гальмує роботу в цілому! Навіть починаючи з ОС Windows 7 все файли проіндексовані в БД. Так само це я переконався в собственой цмс-ке.
За рахунок отримання інформації відразу по двох каналах (зір і слух) ефективність навчання значно перевершує навчання по книгах. А домашні завдання і онлайн-тести дозволять вам постійно думати на мові, що вивчається і відразу перевіряти свої знання!
Якщо ви давно хочете як слід вивчити HTML, то у мене для Вас є чудова новина!
Якщо ви вже вивчили HTML і хочете рухатися далі, то наступним кроком буде вивчення технології CSS.
Якщо ви хочете розібратися з поняттями домену і хостингу, навчитися створювати бази даних, закачувати файли сайту на сервер по FTP, створювати піддомени, налаштовувати поштові скриньки для свого сайту і стежити за його відвідуваністю, то цей курс створений спеціально для вас!