Ответы пользователя по тегу MySQL
  • Как правильно спроектировать базу данных интернет магазина?

    slashinin
    @slashinin
    Задачи для PHP https://justcoding.ru
    Создаете две таблицы: properties (свойства) и property_values (значения свойств)

    Структура у них следующая:
    properties
    *id
    *name
    *category_id (опционально, если надо привязать свойства к категориям)

    property_values
    *id
    *property_id (id свойства)
    *item_id (id товара)
    *value

    Не забывайте про внешние ключи и индексы для обеспечения целостности данных и быстрой выборки.
    Ответ написан
  • Sqlite,Mysql,Php синхронизация?

    slashinin
    @slashinin
    Задачи для PHP https://justcoding.ru
    Вам необходимо реализовать механизм блокировок.

    Не важно откуда и куда вы будете делать синхронизацию, главное, что бы в момент обновления исходная таблица была заблокирована до момента вставки значения в целевую таблицу. А на время блокировки, запросы на обновление исходной таблицы должны попадать в очередь, после снятия блокировки они будут исполнены.

    Поищите как блокировать таблицы в SQLite и MySQL, а затем реализуйте алгоритм синхронизации с блокировками.
    Ответ написан
    Комментировать
  • Select index of enum?

    slashinin
    @slashinin
    Задачи для PHP https://justcoding.ru
    SELECT enum_field + 0 FROM ....
    Ответ написан
    Комментировать
  • Как создать связь многие ко многим в phpMyadmin?

    slashinin
    @slashinin
    Задачи для PHP https://justcoding.ru
    В phpMyAdmin можно лишь создать промежуточную таблицу и проставить внешние ключи (foreign key).
    Ответ написан
    Комментировать
  • MyISAM и InnoDB - Что быстрее работает на чтение а что на запись?

    slashinin
    @slashinin
    Задачи для PHP https://justcoding.ru
    Движки совершенно разные и использовать их нужно в разных ситуациях.
    Для выбора нужно как минимум определить, чего будет больше ?
    INSERT/UPDATE/DELETE vs SELECT

    MyISAM при изменение данных блокирует таблицу целиком, при этом любой SELECT будет ожидать когда операция будет завершена. В InnodDB используется метод по строчной блокировки.

    Т.е. если будет больше вставок то InnodDB выигрывает за счет по строчной блокировке (погугли InnoDB MVCC) если будет больше выборки то MyISAM может использовать КЕШ запросов и тут будет заметный выигрыш.

    Это лишь часть нюансов, так же следует помнить о настройках самого MySQL.
    Ответ написан
    4 комментария
  • Как расставить индексы в MySQL с различными сортировками?

    slashinin
    @slashinin
    Задачи для PHP https://justcoding.ru
    Укажите индексы в порядке их использования в условии WHERE, вынесите выборку полей в отдельный запрос, а затем его отсортируйте.

    SELECT ... FROM (SELECT .... WHERE `man_id` = 1 AND `man_where` = 'inbox' AND `man_group` = 1) as table ORDER BY `id` DESC


    Под запрос внутри FROM будет выполнен в первую очередь с использованием индексов
    man_id, man_where, man_group
    Главное, укажите эти индексы в таком же порядке.

    Затем результат будет отсортирован с использование первичного индекса.
    Должно помочь.
    Ответ написан
    Комментировать
  • Как правильно составить индекс MySql для условий с OR, или сравнением двух полей?

    slashinin
    @slashinin
    Задачи для PHP https://justcoding.ru
    Пробуйте ставить индексы как считаете нужным, при этом смотрите каждый раз на план запроса, что бы видеть какие индексы были использованы, а как нет.

    При этом помните, что MySQL будет использовать индексы строго в порядке их определения т.е. в какой последовательности они были указаны в таблицы, в такой их и надо использовать.
    Ответ написан
    Комментировать
  • Как создать такую таблицу правильно в mysql?

    slashinin
    @slashinin
    Задачи для PHP https://justcoding.ru
    100 000к это конечно многовато для одной таблицы MySQL.
    Вам необходимо записи разбить либо по таблицам либо по секциям.

    Так или иначе, обязательно к прочтению замечательная книга
    "MySQL. Оптимизация производительности"
    https://drive.google.com/file/d/0B3hu-KooaFu0ODY5M...

    Страница 318 в частности.
    Но лучше прочитать книгу полностью.
    Ответ написан
    Комментировать