MySQL

УрокСистема кэширования Drupal 7. Часть первая: сегменты кэша.

По опыту начал замечать, что многие разработчики, особенно junior/mid уровня, имеют довольно слабое представление о системе кэширования Друпала. До сих пор ни один разработчик не ответил мне правильно на все вопросы о хранилищах и назначении стандартного кэша, который включается в ядро Друпала уже достаточно давно. Мне кажется, уже пора раз и навсегда закрыть этот вопрос.

Я надеюсь, самые базовые знания о том, что такое кэш у вас есть. Если же нет – сначала надо прочитать вводную статью о кэше, а потом продолжать чтение текущей.

Кэш Друпала хранится не в одном единственном месте, а разбит по сегментам. По умолчанию в Друпале каждый сегмент кэша находится в базе данных в виде таблиц под определённым именем. Это сделано по нескольким причинам:

УрокЗапись большого объёма данных в таблицу

Каждый хороший разработчик думает о производительности. И сегодня я расскажу о том, как можно быстро записать большие объёмы данных в таблицу за минимальный период времени.

Я уверен, что многие сталкивались с задачей, например, собирать какую-либо статистику и сохранять её в отдельную таблицу. Простейший пример: сохранять количество просмотров и комментариев к материалу за каждый день. А потом по этим данным построить график, который бы визуально отображал "популярность" материала за определённый период. Сама по себе задача простая - выбрать из двух таблиц данные и записать её в свою отдельную. Но когда у вас на сайте, скажем, 200 тысяч материалов, то вставка такого объёма данных может занять приличное количество времени. Но давайте поговорим о возможных вариантах записи этих данных.

УрокБезопасный SQL запрос к базе данных в секции IN при работе с динамическими данными

В Друпал 6 значения, подставляемые в sql запрос могут заменяться %f, %d, %s. Однако что делать, если надо передать в запрос массив данных, который использует секцию IN? Пример:

$result = db_query('SELECT title FROM {node} WHERE nid IN (1, 10, 25)');

Если значения nid заранее известны то проблем не возникает - просто пользуемся вариантом выше и получаем профит. Однако, если количество передаваемых значений не известно, то могут возникнуть трудности. Конечно, можно было бы сделать так:

УрокCоздание и обновление записей в базе данных через Drupal API

В большинстве модулей записи в базу данных делаются постоянно - будь то новые записи, или же обновление уже существующих. Друпал позволяет выполнять прямые запросы в базу через db_query.

Вставка записи:

db_query('INSERT INTO {mytable} (value1, value2) VALUES  (%d, "%s")', $int, $string);

Обновление записи:

db_query('UPDATE {mytable} SET value2 = "%s" WHERE value1 = %d', $new_string, $int);

Однако хорошим тоном является использование функции из Drupal API drupal_write_record.

УрокПеренос сайта с локального сервера Denwer на рабочий сервер

Наверняка многие веб-разработчики, особенно использующих для своих нужд ОС Windows, сталкивались с таким джентельменстким набором как Denwer. Штука действительно очень полезная - за пару минут можно поставить себе на компьютер локальный сервер с базой данных (mysql) и настроенными php и apache. И сервис отправки почты в нагрузку. В общем, получается отличная имитация не сильно заурядного боевого сервера. Тут и памяти можно дать чуть больше для ускорения работы, и отлаживать удобнее, и прочие полезности.

Соответственно, если сайт был сделан целиком на локальном сервере, неплохо было бы показать его людям - а значит, перенести его на рабочий сервер в Интернете. И тут для людей не сильно опытных в этом вопросе может возникнуть затык - а с чего начинать, собсна?) Рассказываю.

Чтобы создать на рабочем сервере полную копию локального, вам необходимо перетащить туда следующие вещи:

    УрокНаписать табы (закладки) собственноручно? Легко!

    Одним из лучших способов экономить место на сайте являются табы. Это простой переключатель контента, который одновременно нетруден в создании - и удобен в использовании. Для этой возможности можно использовать связку модулей views + quick tabs. Однако некоторых этот результать может не устроить из-за того, что вьюзы нагружает сайт. Да и лишний код, как всегда, не потворствует SEO оптимизации.

    Поэтому можно написать свою собственную функцию (как сделать модуль из этого - в след.уроке), в которой мы получим всё, что надо.

    УрокЗапросы к Базам Данных

    В прошлом уроке я немного рассказал общие сведения о базах данных. Теперь подойдем к более предметному вопросу, по созданию, заполнению, обновлению и т.д. таблиц. Я буду использовать сервер MySQL, язык SQL - язык универсальный применяется для работы с практически всеми реляционными базами данных. Так что если вам не нравится, по каким то причинам, MySQL то ваши знания SQL не пропадут впустую.

    Что бы сразу можно было практиковаться установите Denwer(можно установить и MySQL, если умеете, но что бы особо не возиться возьмите более быстрый вариант). Как его установить, откуда скачать подробно указано здесь.

    УрокВведение в Базы Данных

    И так все вы наверняка слышали такое словосочетание Базы Данных. Интуитивно я думаю понятно для чего эти базы предназначены. В этом уроке я изложу основные моменты касательно баз данных, кода пока никакого не будет.

    В данном уроке я буду в основном опираться на сервер MySQL, так как он используется на большинстве веб-сайтов для организации хранения данных.

    Историю появления я расписывать не буду, кого заинтересует - информацию найдет.

    Приступим. Базы данных в интернете появились не сразу, возникает сразу вопрос: а каким образом раньше хранились данные на веб-сайтах? Да по началу в обычных файлах, однако умные люди быстро поняли, что подобное хранение очень не удобно, т.к. если с чтением информации еще худо-бедно все было неплохо, то с записью, изменением информации в файле было очень сложно.