Size: a a a

DBA - русскоговорящее сообщество

2020 December 28

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Ладно, я это никак кроме бреда воспринимать не могу.
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Работает - и ладно.
источник

V

V in DBA - русскоговорящее сообщество
Бред в содержимом или в структуре? "Работает и ладно" - подход хороший для говнокода. Хочется ведь делать хорошо и правильно
источник

V

V in DBA - русскоговорящее сообщество
V
А, ну так и запрос теперь иной. Join только по request_id
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
V
Бред в содержимом или в структуре? "Работает и ладно" - подход хороший для говнокода. Хочется ведь делать хорошо и правильно
Бред в постановке задачи, видимо. Но я не хочу вникать, пили уж сам.
источник

V

V in DBA - русскоговорящее сообщество
Имеешь ввиду задачу с точки зрения бизнес -логики? Или того, как я её сформулировал?
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
V
Имеешь ввиду задачу с точки зрения бизнес -логики? Или того, как я её сформулировал?
Да для меня это одно и то же, я ж только твою формулировку и читаю.
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
V
Бред в содержимом или в структуре? "Работает и ладно" - подход хороший для говнокода. Хочется ведь делать хорошо и правильно
Тут ещё такой момент (в запросе твоём)

Ты этим кодом жёстко фиксируешь порядок JOIN-ов, ну или хотя бы можешь так сделать.
(фиг знает как эта твоя хреновина работает)
Если не попрёт, попробуй поменять порядок, СНАЧАЛА помести таблицы, в которых есть фильтр, и которые служат источником
главных данных, и только ПОТОМ - таблицы, которые JOIN-ятся к данной.

Потому что выполнять фильтрацию сначала — выгоднее.
источник

V

V in DBA - русскоговорящее сообщество
Так и есть - сначала базовая фильтрация - по разным полям для каждой таблицы. Потом - объединение таблиц, чтобы получить request_id.

Потом выборка всех значений из соответствующей таблицы параметра, по request_id.

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

Например, запрос содержал список параметров для pm_from -[ [1,1], [2,2] ]

В influx будет создано 2 записи
table
request_id payment_system_id currency_id
a          1                 1
a          2                 2
А в фильтре выборки пользователь может указать только pm_from=[1,1]
Что при выборке значений только через join даст нам результат
table
request_id payment_system_id currency_id
a          1                 1
источник

S

Serg in DBA - русскоговорящее сообщество
Nick
используйте один SQLiteConnection и одну SQLiteTransaction для всего цикла
параметры тоже нужно переиспользовать, а не каждый раз создавать заново

если всё это пересоздаётся 1000 раз, то конечно скорость работы будет никакая
Да, точно, так и переделаю. А нельзя держать коннект открытым на протяжении всей работы программы и обращаться только к нему?
источник

N

Nick in DBA - русскоговорящее сообщество
это плохая практика
источник

S

Serg in DBA - русскоговорящее сообщество
Чем плохая?
источник

S

Serg in DBA - русскоговорящее сообщество
Что будет если коннект открытый, и программа крашнется?
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Serg
Что будет если коннект открытый, и программа крашнется?
Коннект разорвётся через какое-то время, ничего плохого не будет
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Serg
Что будет если коннект открытый, и программа крашнется?
ПОгодЬ. это ж SQLite, он вместе с программой и БД сразу упадёт, сразу всё.
источник

S

Serg in DBA - русскоговорящее сообщество
Ilia Zviagin
ПОгодЬ. это ж SQLite, он вместе с программой и БД сразу упадёт, сразу всё.
Если не завершилась запись до краша, то после перезапуска программы она возобновится? Или что вообще с БД будет?
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Serg
Если не завершилась запись до краша, то после перезапуска программы она возобновится? Или что вообще с БД будет?
ACID-транзакции есть?
источник

S

Serg in DBA - русскоговорящее сообщество
Ilia Zviagin
ACID-транзакции есть?
Это что такое? Есть только такие как на скриншоте - чтение и запись.
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Serg
Это что такое? Есть только такие как на скриншоте - чтение и запись.
Ну, узнай.
источник

S

Serg in DBA - русскоговорящее сообщество
Мне не у кого узнать. Это мой проект. С SQLite работаю впервые.
источник