Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 November 07

А

Артем in SqlCom.ru - Стиль жизни SQL
Nazar Zakap
Окей а если мне нужно например удалить определенный тур в определенную страну
Нужно пометить на удаление логически битовой маркой, а потом отправить в архив, где в процедурах на "гет" поставить is_del =false
источник

2_

2flower _ in SqlCom.ru - Стиль жизни SQL
Артем
Как минимум распухание таблиц решается мувом в историю секций. Желательно ничего никогда не удалять. Твое распухание стоит меньше по рискам, чем "ой, мы случайно удалили, надо восстановить". Естественно, это не относится к случаям сбоя в приложении, когда тебе наспамили кучу одинаковых данных и delete выполняется скриптом дба, дбд
у вас всегда секции "удачно" расположены?
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
2flower _
у вас всегда секции "удачно" расположены?
Даже если у тебя полный мрак, удаление или искажение данных больший косяк, чем что угодно
источник

2_

2flower _ in SqlCom.ru - Стиль жизни SQL
Артем
Даже если у тебя полный мрак, удаление или искажение данных больший косяк, чем что угодно
не буду с вами спорить, ваше мнение тоже аргументировано и имеет право на жизнь как и мой вариант.
без реального кейса можно спорить до хрипоты.
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
2flower _
не буду с вами спорить, ваше мнение тоже аргументировано и имеет право на жизнь как и мой вариант.
без реального кейса можно спорить до хрипоты.
Возьмём кейс с удалением страны/путевки
источник

2_

2flower _ in SqlCom.ru - Стиль жизни SQL
Артем
Возьмём кейс с удалением страны/путевки
ок. и?
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
2flower _
ок. и?
Ты удаляешь "не использующийся тур". Потом приходит бизнес и говорит "ой, а мы ошиблись". Что делаешь?
источник

2_

2flower _ in SqlCom.ru - Стиль жизни SQL
Артем
Ты удаляешь "не использующийся тур". Потом приходит бизнес и говорит "ой, а мы ошиблись". Что делаешь?
я такого не говорил, более того выражал недоумение зачем удалять страну, если что то не так с туром, а если по нему все таки были продаже, например,
т.е. вопросов больше чем ответов. Я говорил об элементе архива, когда данные убирают из оперативной части с возможностью доступа.
т.е. грубо есть (мы же про большие данные говорили) раздел с более дешевым носителем например где хранятся много данных про туры, которые аналитикам вроде как уже и не нужны, но пусть будут. будет ли это в той же бд или где то сбоку уже не так важно, главное суть.
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
2flower _
я такого не говорил, более того выражал недоумение зачем удалять страну, если что то не так с туром, а если по нему все таки были продаже, например,
т.е. вопросов больше чем ответов. Я говорил об элементе архива, когда данные убирают из оперативной части с возможностью доступа.
т.е. грубо есть (мы же про большие данные говорили) раздел с более дешевым носителем например где хранятся много данных про туры, которые аналитикам вроде как уже и не нужны, но пусть будут. будет ли это в той же бд или где то сбоку уже не так важно, главное суть.
Не нашел про упоминание архивации в месте возникновения диалога
источник

2_

2flower _ in SqlCom.ru - Стиль жизни SQL
Артем
Не нашел про упоминание архивации в месте возникновения диалога
вы понимаете суть "архива" не архивирование сжатие, а архив, т.е. история
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
2flower _
вы понимаете суть "архива" не архивирование сжатие, а архив, т.е. история
Я все прекрасно понимаю, кроме возникновения претензии к запрету на удаление данных
источник

2_

2flower _ in SqlCom.ru - Стиль жизни SQL
Артем
Я все прекрасно понимаю, кроме возникновения претензии к запрету на удаление данных
это накладывает ограничения на размер бд при архивировании например, для выборки данных, хранящихся в перемешку с реальными,
еслив вы про секционирование, я бы потратил его на разбивку для реальных данных, а не для вычленение архивных.
удалять данные из дорого оборудования при больших размера как по мне часть экономии, которая именно на масштабе будет давать приличные суммы.
источник
2020 November 08

Е

Ева in SqlCom.ru - Стиль жизни SQL
Вот создание таблицы:

       CREATE TABLE IF NOT EXISTS product_creation(
       user_id INT UNIQUE,
       category_id INT REFERENCES category(id),
       area_id INT REFERENCES area(id),
       coord_latitude DOUBLE NOT NULL,
       coord_longitude DOUBLE NOT NULL,
       photo_file_id INT,
       text VARCHAR(255)
       )


А вот создание записи
INSERT OR IGNORE INTO 
       product_creation(user_id)
       VALUES(23432432)

В итоге
Запрос успешно выполнен: INSERT OR IGNORE INTO 
       product_creation(user_id)
       VALUES(23432432) (заняло 0мс, 0 строк изменено)

Ничего не добавляет....
источник

Е

Ева in SqlCom.ru - Стиль жизни SQL
p.s. SQLite3
источник

А

А in SqlCom.ru - Стиль жизни SQL
Ева
Вот создание таблицы:

       CREATE TABLE IF NOT EXISTS product_creation(
       user_id INT UNIQUE,
       category_id INT REFERENCES category(id),
       area_id INT REFERENCES area(id),
       coord_latitude DOUBLE NOT NULL,
       coord_longitude DOUBLE NOT NULL,
       photo_file_id INT,
       text VARCHAR(255)
       )


А вот создание записи
INSERT OR IGNORE INTO 
       product_creation(user_id)
       VALUES(23432432)

В итоге
Запрос успешно выполнен: INSERT OR IGNORE INTO 
       product_creation(user_id)
       VALUES(23432432) (заняло 0мс, 0 строк изменено)

Ничего не добавляет....
потому что 23432432 есть уже?
источник

Е

Ева in SqlCom.ru - Стиль жизни SQL
На самом деле была проблема, что два параметра NOT NULL. А OR IGNORE не показывало ошибку
источник

А

А in SqlCom.ru - Стиль жизни SQL
Ева
На самом деле была проблема, что два параметра NOT NULL. А OR IGNORE не показывало ошибку
а должно?
источник

Е

Ева in SqlCom.ru - Стиль жизни SQL
А
а должно?
Нет как-раз
Из-за него сразу ошибку не увидела
источник

В

Вячеслав in SqlCom.ru - Стиль жизни SQL
2flower _
это накладывает ограничения на размер бд при архивировании например, для выборки данных, хранящихся в перемешку с реальными,
еслив вы про секционирование, я бы потратил его на разбивку для реальных данных, а не для вычленение архивных.
удалять данные из дорого оборудования при больших размера как по мне часть экономии, которая именно на масштабе будет давать приличные суммы.
Используешь одну схему для архивной и оперативной таблицы. По наступлении момента нужного, отключаешь устаревшую секцию из оперативной таблицы, удаляешь только в ней оперативные индексы и подключаешь к архивной таблице. Данные разделены физически, ничего не удалено
источник

В

Вячеслав in SqlCom.ru - Стиль жизни SQL
Обратное действие тоже можно проделать.
источник