Заметки > MariaDB 10.0 vs Mysql 5.5

Присутствовал сегодня на одном очень интересном собеседовании. Интересно оно было вопросами собеседующего — их было достаточно много и все были с заковырками. Но один из вопросов меня заинтересовал больше всего. Звучит он примерно так:

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

SELECT
	*
FROM
	`table`
WHERE
	`status` = 1 AND
	`cityId` = 55 AND
	`date_start` > "2016-04-20" AND
	`date_end` < "2016-04-31";

Я про себя ответил точно так-же, как собеседуемый — создать составной индекс, покрывающий все поля в WHERE. Какого-же было мое удивления, когда собеседующий сказал, что это не совсем правильно и в индексе не нужно поле date_end — оно не принесет пользы, только место займет. Я сильно удивился и как добрался домой — решил проверить.
MariaDB 10.0 vs Mysql 5.5 >

Проекты > Копипаст рулит! В PHP.

Предыстория. Заметили, что в одном из наших проектов один из модулей выполняется довольно долго. Суть модуля — получить данные из базы, очистить их и отдать клиенту. Запустили профайлер, держа в голове, что тормозит либо запрос, либо очистка данных. Результат немного удивил (цифры отражают только порядок):

Время всего модуля: 0,68 сек
Время получения данных из базы: 0,02 сек
Время очистки данных: 0,34 сек

Копипаст рулит! В PHP. >

Проекты > 2015

Очень давно не писал в блог… Если честно — не о чем было писать. Последний год работаю над системой распознавания адресов (аналог dadata.ru). Не все так просто, как казалось на первый взгляд. Но это только добавляет азарта. Проблема в том, что основные проекты как-раз доросли до момента, когда такая система жизненно необходима, а она еще не готова…

Ладно, это так, отступление. Сам пост о планах на 2015-й год. Еще ни разу я не публиковал в блоге ни результаты прошлого года, ни планы текущего. В данном случае — исключение + повод для мотивации.
2015 >

Заметки, Проекты > Простая SQL-задача

Время от времени приходится решать не тривиальные задачи. Одна из последних: получить даты, когда были какие-либо записи. В день может быть 84600 записей на пользователя (по количеству секунд), соответственно в месяц около 2 600 000 на пользователя. Пользователей — не ограничено (тестировалось на базе в пару сотен пользователей). Индексы проставлены.

Казалось-бы, все элементарно и просто:

SELECT
	DATE_FORMAT(`date`, '%Y-%m-%d') as `fdate`
FROM
	`user_coord`
WHERE
	`user` = '4' AND
	`date` > '2013-09' AND
	`date` < '2013-10'
GROUP BY
	`fdate`

Но, мы же помним, что GROUP BY = зло? Да и время выполнения запроса, 1.5 — 2 секунды, совсем не устраивает. Включаем мозг…
Простая SQL-задача >

Mac, Заметки > 3 недели на MacBook Pro Retina

Итак, прошло 3 недели, как я вновь начал использовать macbook. Уже чуть легче, но до обещанного «просветления» ой как далеко. Попробую (в первую очередь для себя) сформулировать что нравится и что не нравится в данной ОС за прошедшее время. Само железо описывать не буду, обычный macbook pro retina mid 2013. Что удивительно (и что я до сих пор понять не могу), mid 2013 в продаже был дешевле, чем mid 2012. Не критично, но не понятно…
3 недели на MacBook Pro Retina >