CSS свойства, которые забываю

15 Июл 2010

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

1. Вертикальное выравнивание содержимого относительно изображения


img {
   vertical-align: middle;
}

MySQL DELETE синтаксическая ошибка

08 Июн 2010

Есть ли синтаксическая ошибка в следующем SQL-запросе?

DELETE FROM mytable t WHERE t.id IN (1,2,3,4,5)

Ошибка есть! Правда, я не сразу понял, в чем дело и почему MySQL не хочет пропускать запрос.

Правильным будет любой из следующих вариантов:


DELETE FROM mytable WHERE id IN (1,2,3,4,5);
DELETE t FROM mytable t WHERE t.id IN (1,2,3,4,5);

Суть в том, что если используете алиас для таблицы, то его нужно указать после DELETE.

Или можно указать имя таблицы вместо алиаса.

СУБД должна знать из какой таблицы производить удаление.

Более понятна такая логика MySQL будет при использовании JOIN-синтаксиса оператора DELETE, или просто при удалении из нескольких таблиц:


-- удаление произойдет только из таблицы table1
DELETE t1 FROM table1 t1
INNER JOIN table2 t2 ON t1.id = t2.table1_id
WHERE t1. IN (1,2,3,4,5)

-- удалятся данные из таблиц table1 и table2
DELETE t1, t2
FROM table1 t1, table2 t2, table3 t3
WHERE t1.id=t2.id AND t2.id=t3.id

MySQL оптимизация. NOT NULL.

27 Апр 2010

mysql
В данной заметке хочу обратить (в первую очередь свое) внимание на один из важных моментов, влияющих на производительность при выполнении SQL-запросов:

При создании таблиц в базе данных,
поля всех типов желательно объявлять как NOT NULL!

Это немного экономит память, и главное – увеличивает скорость выполнения запросов. Улучшение производительности происходит из-за того, что СУБД не проверяет такие поля на предмет наличия пустых значений. Таким образом, уменьшается время анализа таблиц. Т.е. просто необходимо объявить поле, как непустое, задать значения по умолчанию (например, «» – для символьных, 0 – для числовых, ‘0000-00-00 00:00:00′ – для даты и времени и т.п.) и радоваться жизни.
Типы полей BLOB и TEXT не могут содержать значения по умолчанию.
Так же не рекомендуется индексировать поля, которые не объявлены, как NOT NULL.

CodeIgniter. Как посмотреть выполненные sql-запросы.

25 Мар 2010

Очень просто! :)

Если быть кратким, то:


//выполненные запросы:
print_r($this->db->queries);
//время выполнения запросов:
print_r($this->db->query_times);

А далее можно использовать эти массивы как необходимо. Сделать временные print_r() для отладки или оформить красивый вывод результатов в админ. части сайта.
Обратите внимание, что данные массивы будут пусты, если


$this->db->save_queries = FALSE; //(по умолчанию TRUE)

Читать полностью…