
Al
28.03.2018
16:16:26
Если бы мне понадобилось искать частичные совпадения. То наверное я бы брал каждую строку из таблицы поменьше. И по столбику ее сверял складывая ид совпавших строк в векторы. А потом бы сверил между собой векторы и получил на сколько процентов у меня там совпадения и по каким столбцам.
Количество запросов равнялось бы количество строк в таблице поменьше * количество столбцов.

Ilia
28.03.2018
17:19:10

Vadim
28.03.2018
19:18:15
Если нужно одним универсальным запросом, то подвязаться на системную таблицу со списком полей (напр., INFORMATION_SCHEMA.COLUMNS) ... вложенными запросами по названию колонок тянуть значения, потом отфильтровать по неодинаковым значениям...

Google

Ilia
28.03.2018
19:59:45

Vadim
28.03.2018
20:01:33

Валерия
28.03.2018
20:05:46
Но в sql можно сделать курсором ведь кстати
Если ходить по колонкам
Проходить по ID всегда, но выявлять только столбцы, в которых не совпадает информация по объявленной колонке
То есть динамически формировать запрос внутри курсора
Только че то как то мне кажется это не самое крутое решение

Ilia
28.03.2018
20:19:25

Валерия
28.03.2018
20:22:10
Я не знала, что есть такое понятие DynEXEC, вау

Ilia
28.03.2018
20:25:37
DynExec он же EXEC() он же PREPARED STATEMENT (MySQL) — это когда ты на серверной стороне в переменной типа "строка" формируешь текст запроса, а затем его выполняешь на этой же БД.
Там разные средства разных СУБД допускают разный уровень автоматизации подстановки параметров в запросы, от конкатенации в виде данных до полной формализованной подстановки в виде типизированных параметров .

Abbos
28.03.2018
22:08:31
ребят привет после того как создал index допустим: create index [indx_ENROLLMENT_studentId] ON [dbo].[Enrollment]([studentId]) после этого его где то вызывать не нужно или нужно?

Al
28.03.2018
22:32:20
Мало нам doom в экселе

Ilia
29.03.2018
06:56:55

Abbos
29.03.2018
06:57:25

Валерия
29.03.2018
06:58:31
но иногда его планировщик запросов может игнорироваьт
тогда можно заставиьт, чтобы индекс ипользовался
ну и аналогично индекс можно и просить . чтобы не использовался))

Vladislav
29.03.2018
07:02:32
В вертике, проекции, которые аля индекс, это вообще таблицы и можно с них делать запросы ?

Google

Vadim
29.03.2018
07:03:59

Sergey
29.03.2018
17:22:56
Всем привет. подскаижте, пожалуйста, может ли запись данных в переменную php влиять на работу ROLLBACK базы данных?

Иван
29.03.2018
17:24:43
Ты же просто данные пишешь в переменную
Например в oracle есть опр параметр типа специальный коммит или просто oci default который просто выдает данные пхп но не делает коммитов или роллбэк) вообщем не парься переменная пхп не делает роллбэков

Sergey
29.03.2018
17:27:38
мне как раз нужно сделать роллбэк

Иван
29.03.2018
17:27:54
Какая у тебя бд

Sergey
29.03.2018
17:28:03
Mysql/Innodb
записи создаются, если я делаю операции в коде
Тестирую с Set autocommit=0
при работе кода записи создаются. При чистых запросах просто индекс увеличивается

Иван
29.03.2018
17:29:23
А подключаешься к бд как стандартные средствами пхп или через pdo ?

Sergey
29.03.2018
17:29:47
с учктом того, что это битрикс, то там mysqli

Иван
29.03.2018
17:30:21
Тогда вот
// Commit transaction
mysqli_commit($con);
// Rollback transaction
mysqli_rollback($con);

Sergey
29.03.2018
17:32:08
Хорошо. спасибо. сейчас попробую

Ilia
29.03.2018
19:28:54

Sergey
29.03.2018
19:32:03
да они как бы выполняются
логи запросов об этом говорят

Google

Sergey
29.03.2018
19:32:26
точнее они отправляются в БД

Ilia
29.03.2018
19:32:42
Ну, есть ещё проблемы?

Sergey
29.03.2018
19:33:10
пока что нет) завтра буду пробовать. Спасибо)

Ilia
30.03.2018
09:36:06
Привет, я тут сделал титаническое усилие, написал пост.
Это пост правды
********************************************
*** ДОРОГИЕ КОЛЛЕГИ РАЗРАБОТЧИКИ БД ***
********************************************
Каждый раз, когда вам говорят в чатах, форумах, статьях в интернете и так далее,
что определённая конструкция языка SQL работае быстрее, чем другая определённая
конструкция языка SQL, не верьте!
Производительность запросов — очень сложная штука, Она зависит от структуры БД,
определённых в ней индексов, типов данных, самих данных и ещё чёрта в ступе от чего.
Только вы сами в ваших конкретных условиях можете понять, как лучше написать запрос
и как он будет быстрее работать.

Pavel
30.03.2018
09:49:49
то бишь, бывает случай, когда order by rand будет быстрее?

Vladislav
30.03.2018
09:51:26
быстрее чем что?
быстрее ORDER BY rand, rand уж точно

Denis
30.03.2018
09:53:59
********************************************
*** ДОРОГИЕ КОЛЛЕГИ РАЗРАБОТЧИКИ БД ***
********************************************
Каждый раз, когда вам говорят в чатах, форумах, статьях в интернете и так далее,
что определённая конструкция языка SQL работае быстрее, чем другая определённая
конструкция языка SQL, не верьте!
Производительность запросов — очень сложная штука, Она зависит от структуры БД,
определённых в ней индексов, типов данных, самих данных и ещё чёрта в ступе от чего.
Только вы сами в ваших конкретных условиях можете понять, как лучше написать запрос
и как он будет быстрее работать.
+++ однозначно

Ilia
30.03.2018
10:07:22

Pavel
30.03.2018
10:37:19
слишком категоричный и однобокий текст, как по мне

Ilia
30.03.2018
10:37:51

Валерия
30.03.2018
10:40:03
********************************************
*** ДОРОГИЕ КОЛЛЕГИ РАЗРАБОТЧИКИ БД ***
********************************************
Каждый раз, когда вам говорят в чатах, форумах, статьях в интернете и так далее,
что определённая конструкция языка SQL работае быстрее, чем другая определённая
конструкция языка SQL, не верьте!
Производительность запросов — очень сложная штука, Она зависит от структуры БД,
определённых в ней индексов, типов данных, самих данных и ещё чёрта в ступе от чего.
Только вы сами в ваших конкретных условиях можете понять, как лучше написать запрос
и как он будет быстрее работать.
??


Денис
30.03.2018
11:08:15
Подскажите если кто в курсе
Есть задача:
- основная нода имеет все данные
- распределённые ноды имеют только чать данных (грубо у каждого своя табличка)
Писать читать (в рамках разрешнного) может каждая нода
Гарантированность доставки данных критична (скорость синхронизации не критична)
Смотрю в сторону кассандры (ещё не читал детально документацию не знаю умеет она так или нет)

Sergey
30.03.2018
12:04:39

Ilia
30.03.2018
12:09:37
Но!
, Если ты делаешь
Begin transaction
Auto commit отключается

Google

Vladislav
30.03.2018
12:12:59

Ilia
30.03.2018
12:13:27
Наоборот, должен
Но не пересоздавать, естественно, а maintain.
Но он все равно именно maintaining в виду имеет.
Ведь да?

Vladislav
30.03.2018
12:14:38
Либо тратится время на вставку, либо просто вставляется, а индекс потом ребалансится

Ilia
30.03.2018
12:14:49
@serezhaivchenko ?

Sergey
30.03.2018
12:18:29
У меня просто между стартом транзакции и роллбэком есть пулл запросов из select, insert и update. Инсерты все равно проходят и появляются записи в бд. Попробовал инсерты руками провести, на это мне цмс пишет, что индекс с параметрами создан

Михаил
30.03.2018
12:18:46

Sergey
30.03.2018
12:18:46
Вот я и подумал, что косяк где-то из-за индексов

Ilia
30.03.2018
12:25:13

Sergey
30.03.2018
12:28:54
Да

Vladislav
30.03.2018
12:29:06
селект же до роллбека?

Sergey
30.03.2018
12:29:19
Да

Vladislav
30.03.2018
12:29:47
ну так логично, в рамках транзакции ты увидешь записи
вот если ты сделаешь роллбэк, а потом селект, то записей не должно быть

Sergey
30.03.2018
12:33:02
Записи после транзакции виду в системе
На одну запись становится больше

Ilia
30.03.2018
12:35:01
Ну тут чудесь нет, ты где-то делаешь commit, либо НЕ делаешь start|begin transaction
Ты пулы коннекций используешь?

Sergey
30.03.2018
12:45:09
Нашел в ядре mysql_query. Перед ним поставил логирование в файл. получаю https://pastebin.com/g2fyTMJ8

Google

Виктор
30.03.2018
12:49:17
Может таки не все таблицы innodb

Sergey
30.03.2018
12:50:24
Все. Проверил несколько раз. Делал бэкап и менял движок

Ilia
30.03.2018
12:57:16

Sergey
30.03.2018
12:59:36

Ilia
30.03.2018
12:59:53
Ну, проверь.

MIkhail
30.03.2018
13:06:54
А есть спецы по CDC????