Архив рубрики ‘mysql’
Вторник, 3rd Ноябрь 2009 |
Столкнулся с необходимостью работы в нескольких временных зонах одновременно. До этого момента как-то не задумывался на тем, для чего оно надо, пока не столкнулся с такой ситуацией: из mysql возвращается unxi_timestamp (число секунд, прошедших с начала unix-эпохи), на стороне mysql оно форматируется при выводе в одно время, а если форматнуть его с помощью функции PHP date() то получаем время с часовой разницей.
Это из-за того, что на сайте я задаю timezone отличную от той, которая используется в mysql с помощью функции date_default_timezone_set.
(далее…)
Рубрика: mysql, глюк, программирование | 1 комментарий »
Суббота, 1st Август 2009 |
Имеем свежеустановленный Apache 2.2.11 с PHP 5.2.10 (и PHP 5.3.0) + MySQL 5.1.0. Операционная система Vista Home Premium (но я предполагаю что актуально для всех версий Windows).
Проблема: при попытке открыть WEB страницу которой необходимо подключение к базе данных Apache падает, в журнале событий появляется ошибка:
Сбойное приложение httpd.exe, версия 2.2.11.0, штамп времени 0×493f5d44, сбойный модуль php5ts.dll, версия 5.2.10.10, штамп времени 0×4a3908cf, код исключения 0xc0000005, смещение ошибки 0×00096f85, ИД процесса 0×4f8, время запуска приложения 0×01ca12759c60e3ac.
(далее…)
Рубрика: PHP, mysql, windows, глюк, софт | 15 коммент. »
Понедельник, 5th Январь 2009 |
Так сложилось, что я уже несколько лет веду все личные и рабочие заметки в локально установленной Mediawiki. Как показал мой опыт это весьма удобно – можно набросать по-быстрому статью, в которую затем добавить дополнительную информацию (например графику), дополнить ссылками как внутренними так и внешними. И поиск есть. Получается такая википедия для внутреннего пользования, ценность которой с годами все возрастает и возрастает.
На днях я решил перенести мою Wiki на другой сервер, и столкнулся с неожиданными проблемами, которые растянули этот процесс на 3 дня.
(далее…)
Рубрика: mysql, глюк, софт | 18 коммент. »
Четверг, 5th Июнь 2008 |
Изучая возможности новых версий MySQL задался вопросом, – что же это такое mysqli? Как оказалось очень классная вещь!
К своему стыду я и не знал, что mysql с версии 4.1 поддержит предварительную подготовку запросов (prepare) и их последующее выполнение с передаваемыми параметрами. Пока не выяснил только, расшаривает ли сервер (по идее должен), подготовленные запросы для всех подключений. Это ведь может резко снизить нагрузку на базу данных!
Единственно что плохо – похоже не все хостеры поддерживают его даже на данный момент (на хостинге РБК, по крайней мере не увидел где его можно включить). Поэтому лучше написать класс-враппер, чтобы можно было легко переключаться на старый протокол работы с mysql.
Полезные ссылки: толковая статья по теме (оригинал тут).
Рубрика: PHP, mysql, программирование | 2 коммент. »
Понедельник, 31st Март 2008 |
При сохранении различной статистики, довольно часто встречается задача обновить существующую запись а если она не существует – создать.
Например, существует таблица “test” с полями “day” (дата, без времени) и “counter” (число – счетчик). Есть уникальный индекс по полю “day”. Надо его увеличивать при наступлении какого-то внешнего события (у меня это downloads).
Довольно часто я применял такой метод – делаем SELECT (ищем запись в базе), если ее нет – INSERT, иначе – UPDATE. В последнее время стал использовать функцию PHP mysql_affected_rows(), а вчера увидел еще одно решение – всегда делается вставка, и если произошла ошибка дублирования ключа – выполняем UPDATE. (далее…)
Рубрика: mysql, оптимизация | 2 коммент. »
Понедельник, 31st Март 2008 |
Сейчас обнаружил удивительную вещь, – если в условии запроса написать:
b.day >= SUBDATE(sysdate(),INTERVAL 31 DAY)
то MySQL почему-то не использует индекс, который создан по полю day, а если в текст запроса поместить константу:
b.day >= ‘2008-03-30′
тогда индекс используется!
Чудеса какие-то, вообще я ожидал что он только 1 раз вычислит результат функции SUBDATE и будет его использовать как константу, но не тут то было.. почему-то.
Вывод: используем константы в запросах, не умничаем знанием встроенных функций.
PS Версия MySQL 5.0.42
Рубрика: mysql, оптимизация | Нет комментариев »