Size: a a a

2021 June 09

d

deadka in ru_mysql
мм, честный = быстрый? ))))
источник

AB

Alex Butenko in ru_mysql
MariaDB []> explain UPDATE campaigns SET contacts = 5657, newleads = 904, redialscount = 43151, dnrcount = 513, dateupdated = NOW() WHERE id = 8257;
+------+-------------+-----------+-------+---------------+------+---------+------+------+---------------------------+
| id   | select_type | table     | type  | possible_keys | key  | key_len | ref  | rows | Extra                     |
+------+-------------+-----------+-------+---------------+------+---------+------+------+---------------------------+
|    1 | SIMPLE      | campaigns | range | PRIMARY,id    | id   | 4       | NULL | 1    | Using where; Using buffer |
+------+-------------+-----------+-------+---------------+------+---------+------+------+---------------------------+
1 row in set (0.001 sec)

MariaDB []> explain UPDATE campaigns **USE INDEX(PRIMARY)** SET contacts = 5657, newleads = 904, redialscount = 43151, dnrcount = 513, dateupdated = NOW() WHERE id = 8257;
+------+-------------+-----------+-------+---------------+---------+---------+------+------+-------------+
| id   | select_type | table     | type  | possible_keys | key     | key_len | ref  | rows | Extra       |
+------+-------------+-----------+-------+---------------+---------+---------+------+------+-------------+
|    1 | SIMPLE      | campaigns | range | PRIMARY       | PRIMARY | 4       | NULL | 1    | Using where |
+------+-------------+-----------+-------+---------------+---------+---------+------+------+-------------+
источник

AB

Alex Butenko in ru_mysql
товарищи, подскажите куда копать, я не могу понять как моя мария уже даже не может праймари индекс угадать :)
источник

AB

Alex Butenko in ru_mysql
сорри, не совсем одно и тоже
источник

АП

Авраам Петрович... in ru_mysql
Привет, запутался немного, поможете расставить точки над И.

По задаче большая половина таблиц содержит ссылку на таблицу "регионы" через region_id.

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

Насколько оправдано делать еще раз на регион несмотря на то, что связанная сущность уже подразумевает внутри регион?

Как-то не слишком получается разбить на таблицы так чтобы были связи "много-ко-многим" - слишком много тройных и четвертных связок получается.

Есть у кого почитать или рецепт?
источник

AK

Andrey Kononvich in ru_mysql
это денормализация БД, добавляются избыточные данные, при помощи которых сложные запросы сводятся к более простым
источник

АП

Авраам Петрович... in ru_mysql
теперь я знаю как это называется но по прежнему не знаю как с этим летать
источник

АП

Авраам Петрович... in ru_mysql
у меня регионы во всех таблицах почти так как являются точками уникальности почти во всем.

хочется сохранить _модульность_ программы, но когда я вшиваю регион я вообще выбиваюсь из идеи того что программа может собираться из кусков
источник

АП

Авраам Петрович... in ru_mysql
так например регионы в емейлах что делают? а вот конкретно в этом приложении емейлы уникальные в рамках региона*

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

АП

Авраам Петрович... in ru_mysql
значит ли это, что мне надо всё это делать через много-ко-многим\
источник

АП

Авраам Петрович... in ru_mysql
типичный пример задачи

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

модулю авторизации строго пофиг должно быть - по логину-паролю ищется юзер. в смысле два одинаковых логина? а вот - можно оказывается.
он насквозь через всю логику проходит

прям какой-то слой такой "проверяй регион всегда"
источник
2021 June 10

C

Cactus🌵 in ru_mysql
Подскажите пожалуйста, мне нужно получить разность 2х записей из таблицы где max(id) и max(id)-6 возможно ли это с помощью sql запроса сделать или получить 2 значения в коде и там получить разность уже? Просто sql запрос никак не получается составить
источник

L

Libra in ru_mysql
SELECT
  max(value) as max_meter,
  min(value) as min_meter,
  max(value) - min(value) as diff,
  FROM 'table'
источник

C

Cactus🌵 in ru_mysql
у меня он такое не пропускает(
источник

L

Libra in ru_mysql
Запятую я лишнюю поставил перед from
источник

C

Cactus🌵 in ru_mysql
все равно
источник

d

deadka in ru_mysql
А если value завернуть в backtick-кавычки ( ` ) ?
источник

d

deadka in ru_mysql
и имя таблицы mytable не надо в одиночных кавычках
источник

C

Cactus🌵 in ru_mysql
у меня вот так работает, но это 2 отдельных запроса
источник

L

Libra in ru_mysql
Вам нужно вместо value поставить id, я же образно написал, не знаю вашей структуры
источник