Ответы пользователя по тегу MySQL
  • Запрос Mysql из двух взаимозависимых таблиц

    Mandor
    @Mandor
    Попробуйте "distinct user_id".
    Ответ написан
    Комментировать
  • Как лучше создать запрос в базу: лепить один большой или плодить маленькие?

    Mandor
    @Mandor
    Если задача позволяет - делайте несколько маленьких, так проще и удобнее. Другое дело, если вам нужна фильтрация/сортировки по полям join-нутых таблиц, тогда выбора нет.
    Ответ написан
    Комментировать
  • Как организовать хранение сезонного промежутка времени Mysql?

    Mandor
    @Mandor
    Поле "месяц" и поле "день месяца" в двух экземплярах. Если вам не важны високосные года, то просто количество дней от начала года.

    Всю логику попадания в промежуток и пересечения промежутков можно встроить в SQL.
    Ответ написан
    Комментировать
  • Хранить php-код в базе данных MySQL - насколько это корректно?

    Mandor
    @Mandor
    - Хранить PHP-код в базе не страшно. Но: 1. исполнять код из БД медленнее чем из файла (нужен как минимум коннект к БД + не очень быстрый eval, как максимум - еще и чтение таблицы с данными с диска), 2. редактировать код из БД обычно менее удобно, чем из файла (будь-то FTP-доступ или SSH), то же самое на счет отладки.
    - Eval можете использовать, он для того и сделан, чтобы его использовали тогда, когда надо.
    - Если хранить обработчики в файлах или даже добавить к ним и сами тесты никакого файлового ужаса не будет. Просто продумайте структуру заранее. Если вас пугает наличие 10000 файлов в одном каталоге - можно предусмотреть разбивку на подкаталоги, в каждом из которых будет например по 100 тестов. В конце концов как хранят фотки фотохостинги и видео - видеохостинги, не в БД же?!
    - Про DSL идея хорошая. Помимо всего остального это поможет снять запрет на редактирование обработчиков тестов только разработчиком сайта.
    Ответ написан
  • Как реализовать парсер товаров из интернет магазина средствами PHP?

    Mandor
    @Mandor
    1. Скачиваем главную страницу (или другую стартовую, если нужная информация находится не на главной).
    2. Парсим регулярками нужую нам информацию. Можно парсить не регулярками, а загрузить страницу в какой-нибудь html-парсер и получать от него данные в виде тегов.
    3. Информацию полученную регулярками кладем в базу.
    4. Парсим либо регулярками либо через внешнюю библиотеку html-парсера ссылки на другие страницы.
    5. Если ссылки нам подходят (не ведут на внешний сайт и другие бесполезные для нас страницы) - переходим по ним рекурсивно. Далее повторяем цикл с начала (только парсим не главную, а ту на которую перешли).

    Для обновления инфы на своем сайте запоминайте исходные id данных (ну или что-нибудь другое вместо id), и если такие записи в вашей БД уже есть - обновляйте их.
    Ответ написан
    1 комментарий
  • Из-за чего большое время выполнения скрипта при поиске в MySql с использованием LIKE и ORDER?

    Mandor
    @Mandor
    На правах капитана:
    1. Проблема в LIKE
    1.а. Проблема в вот этом символе (я выделил жирным) "like '%|1|%'"

    В данном случае наличием "%" в начале строки убивается всякая возможность использовать поиск по индексу этого поля.

    2. +1 за FULLTEXT, но он работает только на MyISAM (если за последнее время ничего не изменилось).
    Ответ написан
    1 комментарий
  • Какова нагрузка на MySQL & PHP с большим значением id?

    Mandor
    @Mandor
    Памяти будет есть больше. Обычный id = 4 байта, ваша строка (миллиард * 10) = 100 байт в памяти (т.к. это будет индекс). Рассмотрите вариант использования bigint.

    а если 100 таких id?

    100 - ничто, дойдете хотя бы до 10 млн. - начинайте думать.
    Ответ написан
    Комментировать