Задать вопрос
  • Вопросы по теории mysql?

    @Hfnas Автор вопроса
    Rsa97, Ух-ты, класс надо попробовать перевести все в бинарное представление. Спасибо большое!
  • Вопросы по теории mysql?

    @Hfnas Автор вопроса
    Михаил, благодарю за ваше внимание!
    1 вопрос отпал. Спасибо Вам большое! Просто в книге https://www.oreilly.com/library/view/high-performa... , правда 2 издания указано, что гуиды нежелательно использовать в качестве первичного ключа, из-за трудности вставки (индекс изначально отсортирован), то есть при каждом добавлении приходится перестраивать индекс.

    Даже, если я добавлю первичный ключ интом, мне придется добавить индекс уже по полю гуид(добавление индекса тоже влияет на вставку записи в бд). Итог, что лучше 2 индекса уникальных или один? Конечно, один. Спасибо Вам большое! А что скажете по поводу бинарного представления uuid? правда, придется при вставке гуида переводить в бинарное представление, затраты на такую операцию окупаются? Да, не спорю, при селекте будет отлично выбираться. Спасибо Rsa97 за мысль перевода гуидов в бинарное представление.

    2) Я часто делаю сортировку и группировку по нескольким полям из разных таблиц (минимум из трех), запрос пока вроде быстро идет(делаю EXPLAIN ANALYZE, смотрю на (actual time=0.160..0.163 ), но мне не нравится filesort (если делаешь explain)., в тоже числе по агрегирующим функциям , такими как сумма
    Мы же должны избавиться от запросов типа where, all, memory, filesort,
    Самый лучший запрос, наверное то, который использует индекс. Поэтому я добавляю из других таблиц поля в одну, чтобы по нему добавить индекс(2 поля из одной таблицы, одно поле из другой таблицы). Но, стоимость вставки не оправдана, если делать вставку записи через сущность. Поэтому у меня возник таколй вопрос. В доках написано индекс нужен для полей where, order by, group by. Может, я что-то не уловила, подскажите, пожалуйста, что поискать.

    и еще у меня есть на сайте функция сортировка по каждому столбцу, естественно по каждому полю я не добавляю индекс, так как это затратно при вставке записи. Правда, не знаю, верный у меня подход? Но , бд будет расти постоянно.

    Например, есть таблицы `products`, `products_group` . Для таблицы `products` указан столбец количество на складе. Далее для таблицы `products_group` нужно указать количество товаров по группам, в этом случае делают денормализацию?
  • Вопросы по теории mysql?

    @Hfnas Автор вопроса
    Rsa97, спасибо БОЛЬШОЕ за подсказку. То есть можно не добавлять ид в каестве первичного ключа, а гуид перенести в поле "внешний код", и тоже на него индекс. С другой стороны судя по скудной инфе, которую я прочитала, что простые ид плохи при реплике.
    Повторюсь, у меня скудная инфа, и знании не хватает. В любом случае спасибо за подсказку.
    Я все время импортирую с 1с, не подскажете затраты на перевод гуида в бинарное представление какие будут?
    Выбор таких гуидов, не спорю, будет быстро.
  • Вопросы по теории mysql?

    @Hfnas Автор вопроса
    Алексей Уколов, спасибо, его и читала, только 2 издание. может, стоит посмотреть поздние издания?
  • Вопросы по теории mysql?

    @Hfnas Автор вопроса
    Akina,
    "долгая вставка индекса первичного ключа" - это как бы сказки. Или, если на самом деле тормозит - то весьма вряд ли по вине MySQL, там же посредников не счесть
    .
    Тормоза нет, просто уточняю . я прочитала об этом в книге https://www.oreilly.com/library/view/high-performa... , что гуид нежелательно делать, а нужно ид(автоинкремен -целое число). А исходя с Ваших слов ,то есть можно гуид сделать первичным ключом в моем случае, если импортируешь с 1с.
    или же нужно сделать в качестве первичного ключа автоинкремен целое число?
    Сортировка и группировка выполняется не по таблицам, а по выражениям. Но это к слову.

    В этом случае мы делаем денормализацию, и добавляем столбцы из других таблиц в одну таблицу. Верно?
    "сортируемые и группируемые поля добавить в самый конец индекса" ?? Какого индекса-то? не говоря уж о том, что индексов по выражениям, включающим поля нескольких таблиц - не существует. Не только в MySQL - вообще в любой СУБД.

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

    @Hfnas Автор вопроса
    ThunderCat, Доброго Вам вечера!
    Вот такое большущее СПАСИБО Вам за столь подробный ответ!!!!

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


    Буду гуглить "Кэш запросов, индексов, временные таблицы , чтобы в память поставить."
  • Вопросы по теории mysql?

    @Hfnas Автор вопроса
    ThunderCat, большое спасибо за развернутый и подробный ответ от Души!!!
    Можно уточнить некоторые нюансы?

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


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

    Или если у меня веб-странице есть таблица Users, при клике на заголовок которой меняется сортировка по убыванию/возрастанию, то нужно создавать индекс на каждый столбец данной таблицы?

    Аналогично, создать индекс на поле присоединяемой таблицы посредством джойна? (Например, у меня таблица Users(поля сущности:"ид", "логин", "пароль", "адрес"(ид на таблицу Address, foreign key)),есть сущность Address(поля: ид, наименование), присоединена к сущности Users как OnyToMany. Естествеено, если я вывожу таблицу пользователи("логин", "наименование адреса") на веб-странице, я добавляю индекс и на поле "Наименование" сущности Address). Повторюсь, мне нужно отсортировать "Логин" , "Наименование адреса" на веб-странице.

    Просто я вычитала в доках, что сортировка -делает временную таблицу. А я постоянно применяю сортировку в своем проекте, в тч и для расчета статистистики, и чаще всего в join-таблицах (как в случае адреса в таблице пользователи). И поэтому, правильный путь, это создать индексы на поля, которые нужно отсортировать, в тч и в join таблицах? explain показывает Using filesort, Using temporary , что очень плохо. Наверное, нужно сделать так, чтобы не показывал, добавлением индексов, верно?

    Например на сайте новостей 1 секунда это много, а на приложении с миллиардами записей статистики по мировым продажам жвачки в розницу для планирования расширения сети продаж с 30 объединениями/группировками/дистинкт выборками надцать секунд или даже минут это норм, так как задача другая совершенно.


    спасибо! За подробный ответ.

    а explain подскажет где можно подкрутить что-то на уровне индексов/памяти, код при этом вообще не трогается. Да и по большому счету 99% типовых задач не пишутся руками, а пускаются через модель/орм.



    у меня страница не превышает в запросах более 1с, но, если посмотреть профайлер симфони,explain, то я вижe что type=ALL , значит, запросы нужно оптимизировать: добавить индексы. По поводу памяти, в первые слышу, в роликах на ютубе про индексы про память не говорилось, может, быть вы имели ввиду править конфиг mysql? Пожалуйста, подскажите, в каком направлении копать, по "память"? Что погуглить?

    Если вам нужен именно конкретный запрос с конкретным набором выходных данных, менять вы его не будете, логично что крутить вы можете только структуры данных и индексы, ну может еще что-то в настройках самого сервера.


    Правильно ли я понимаю, если индексы не спасают проблему(долго выполняются), нужно настраивать сервер?
  • Вопросы по теории mysql?

    @Hfnas Автор вопроса
    Zhainar, не могли бы посоветовать Хорошую книжку? проблема в основном , в подаче автора. Если написано замудренно, я мало ли что пойму, хоть читай несколько раз, все равно не поймешь.-(
  • Как правильно организовать код большой формы-калькулятора на vue.js?

    @Hfnas
    karpo518, я писала на чистом jquery, основной запрос шел посредством аякс через сервер. То есть я добавила поле, и/или изменила поле, идет аякс на сервер, отсюда сервер менял часть кода на странице. Но, все пользователю кажется все медленным, вот я и хочу разобраться. может мне vue попробовать? Правда у пользователя низкая скорость интернета 9мб.с Может, с этим связано.

    Вы не подскажете, какого рода были препятствия, Буду благодарна за ответ.
  • Как правильно организовать код большой формы-калькулятора на vue.js?

    @Hfnas
    Доброго Вам дня, удалось ли Вам сделать калькулятор, насколько он быстрый?
  • Какие причины того, что агент активный ( но не выполняется)?

    @Hfnas Автор вопроса
    Это возможен таймаут? Агент спрашивает данные с другого сервера.
  • Какие причины того, что агент активный ( но не выполняется)?

    @Hfnas Автор вопроса
    у меня в конструкции агента написано try{}catch{} , после catch{} возврат функции агента.
  • Как устранить долгое ожидание от запроса к другому серверу?

    @Hfnas Автор вопроса
    В смысле?Уточните, пожалуйста.
  • Как одновременно следить за заказами с сайта и чекам кассы?

    @Hfnas Автор вопроса
    Kalombyr, не совсем поняла , поясните
    ой небольшой опыт, в один прекасный момент всётаки нехватит.

    у меня один скрипт, который последовательно проходит по кассе, потом по заказам. и это все крутится по крону.
  • Как одновременно следить за заказами с сайта и чекам кассы?

    @Hfnas Автор вопроса
    Андрей, подскажите, а rabbitMq на хостинге таймвеб встроен?
  • Как одновременно следить за заказами с сайта и чекам кассы?

    @Hfnas Автор вопроса
    То есть так лучше? Хорошо, я посмотрю на всякий случай, на будущее ( так как я сделала сихрон ( последовательно проверяю сначала в кассе, потом в заказах).
  • Как одновременно следить за заказами с сайта и чекам кассы?

    @Hfnas Автор вопроса
    Я так и сделала сихрон... Поставила на крон 2мин, должно хватит.
  • Как одновременно следить за заказами с сайта и чекам кассы?

    @Hfnas Автор вопроса
    нет остатки не рассматриваем.