DBA - русскоговорящее сообщество - Популярные вопросы | Страница 1

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

Вопросов: 256

Ответов: 2310

Популярные вопросы

suzenebl
1/20/2021, 5:37:22 PM
Ответов: 44
Itree подходит для хранения большого количества элементов 2

уровня ?

Аноним
3/2/2021, 5:19:05 AM
Ответов: 28
Здравствуйте, меня на собесе загнали вопросом, чем принципиально хранение в БД отличается

от хранения в txt файле каком-нить. Типа логику там с пользователями, язык для запросов можно докрутить поверх txt, а в чем фундаментальное различие? Можете подсказать?

Аноним
1/21/2021, 6:25:31 PM
Ответов: 28
Разрешите задам вопрос, который может задать только дебил. Как в SQLite сделать

создание TEXT KEY? Primary не вариант, а CLUSTERING нету вроде какхотя и он вроде как не должен работать. P.S. если это нужно, то код идёт под Android на Java + SQLite P.P.S. Я пока начинающий, потому не понимаю как это сделать P.P.P.S. Проблем с производительностью не будет, т.к. максимум будет +- 100-200 элементов

Аноним
10/12/2020, 12:57:23 PM
Ответов: 27
Специалисты по транзакциям. Научите. Что у нас всегда в SQL базе

стратегия разрешения конфликтов last writer wins?

mr4rti
11/16/2020, 5:00:07 PM
Ответов: 26
ребят, есть таблица совместимости кабелей и телефонов id_cable|id_phone|last_updated

|created | --------|--------|-------------------|-------------------| 1| 6|2020-11-16 18:29:30|2020-11-16 18:29:30| 1| 5|2020-11-16 18:29:30|2020-11-16 18:29:30| 1| 4|2020-11-16 18:29:30|2020-11-16 18:29:30| 3| 3|2020-11-16 18:29:30|2020-11-16 18:29:30| 3| 2|2020-11-16 18:29:30|2020-11-16 18:29:30| 3| 1|2020-11-16 18:29:30|2020-11-16 18:29:30| 3| 5|2020-11-16 19:56:33|2020-11-16 19:56:33| как проверить есть ли нужная мне пара в таблице?

Аноним
2/17/2021, 9:58:14 AM
Ответов: 25
Кто знает в каком порядке в Postgresql сортируется агрегация в

окне [string_agg over]? Явная сортировка не поддерживается, но можно ли опираться на то, что неявная будет оставаться постоянной без изменения запроса?

zhanibek550
6/5/2021, 7:03:51 AM
Ответов: 24
Всем привет ребят, кто шарит за фнкции и процедуры в бд? В

чём их смысл, если я могу все теже самые проверки переборки инпуты сделать в той же java?

Bogdan_Bida
7/8/2021, 7:15:00 PM
Ответов: 24
Ребят, как посоветуете разрулить такую ситуацию Надо добавить в приложение чат, а

точнее комменты Комментарии будут как виджет который используется на двух разных страницах к разным вещам Грубо говоря в таблице комментов должен быть внешний ключ на запись из одной или другой таблицы, это то, к чему привязан комментарий, обобщим и например 1 таблица это видео а другая какая-то галерея и у них обоих есть комментарии Есть идея сделать 3ю таблицу в которой два поля 1 - айди 2 - число по которому можно определить для какой таблицы выше указанное айди является типа внешним ключом Но мне кажется что то, что для самой БД теряется явная связь - является проблемой Это нормальное решение? или стоит подумать еще, либо же кто-то может подсказать? Если нормальное, то как в итоге таблицу то эту назвать?

msmarshev
11/30/2020, 8:26:35 PM
Ответов: 23
Такой вопрос если я начинаю делать sql запросы и потом делаю коммит,

может ли при коммите появится какая-то логическая ошибка или ошибки появятся на этапе sql запроса?

vch_19
11/4/2020, 12:11:48 PM
Ответов: 21
Всем привет, подскажите пж альтеренативу row_number over в postgre?
ssagee
11/28/2020, 7:50:40 AM
Ответов: 20
Добрый день, стечением обстоятельств я "проектирую" базу данных в вузе. Может кто

объяснить что от меня хотят? Не забывай, что сущность – это множество однородных объектов реальных или виртуальных. Сущность ТРУДОВАЯ КНИЖКА – это множество виртуальных объектов, которые представляют записи из всех реальных трудовых книжек всех сотрудников. У одного сотрудника может быть несколько записей в его трудовой книжке.Какой номер труд.книжки впишешь в таблицу Сотрудник, если у него несколько записей в труд.книжке?

etkee
3/31/2021, 8:19:44 PM
Ответов: 18
Ну вот массив статусов у человека выше - это нарушение?
muradyant
11/9/2020, 1:17:56 PM
Ответов: 18
Всем привет, подскажите, есть 3 таблицы: "новости", "теги" и связующая

таблица, как оптимальнее хранить это для поиска новостей с определенным тегом? оставить many-to-many, или денормализовать и хранить массив тегов для каждой новости?

Аноним
3/29/2021, 12:07:53 PM
Ответов: 17
Two-phase locking используется только для уровня serializable или его используют и для

других уровней? Если для других, то для каких?

Аноним
11/6/2020, 9:37:53 AM
Ответов: 17
Всем привет, подскажите пожалуйста, правильно ли я понимаю Когда у нас транзакция

с isolation level = REPEATABLE READ, то блокировка на чтение держится всю транзакцию То есть, если я начинаю транзакцию, вызываю select, а потом update на ту же строку, то в теории должна произойти ошибка т.к. update не может получить лок из-за уже существующей блокировки на чтение?

Аноним
1/26/2021, 1:34:23 PM
Ответов: 17
Обьясните, как работает 2х фазный коммит? Все равно ведь нельзя одновременно выполнить

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

RisentVeber
10/7/2020, 12:07:37 PM
Ответов: 16
Всем привет - ребят не могу воспроизвести ситуацию с LOST updates ни

на каком уровне изоляции в PostgreSQL - скажите получается такую ситуацию нельзя наблюдать для PostgreSQL и именно поэтому в доке ничего про это не сказано?

User322
2/10/2021, 8:42:52 AM
Ответов: 10
Привет. Не могу найти рекомендаций чего-то. MSSQL рекомендуют ставить на диски, с

размером кластера 64К. Есть ли подобные рекомендации по постгресу? Кто как диски под него форматирует?

RewriteH
12/6/2020, 6:20:47 PM
Ответов: 15
Не подскажите, как можно дебажить запросы?
maksim_melnichuk
7/20/2021, 12:23:32 PM
Ответов: 15
Добрый день, есть эксперты с СУБД mysql, возможно mongodb, clickhouse? есть таблица

около 10 млн записей, в неё постоянно происходят вставки и обновления, а так же постоянный select к ней с фильтрацией по разным набором полей вот тут и проблемы, индексы делал простой, составной, mysql просто отказывается брать необходимый индекс и берет не эффективный, использовать use index такое себе решение наверное по крайней мере при одних запросах быстро, при других уже нужен другой индекс и угадать селективность сложно и покрыть все комбинации. Может кто сталкивался, аналогия - таблица todo постоянная фильтраций по диапазаону партишены по дате тоже пробовал, представим что надо назначать задачу кому-то и в этих задачах искать по статусам и другим параметрам

lord_xaart
8/3/2021, 2:38:03 PM
Ответов: 13
Всем привет. Есть база mysql 5.7. При попытке сделать дамп часто

разрывает соеденение и перезагружаеться сервер Error 2013: Lost connection to MySQL server during query when dumping table Заметил что такое также при тяжелых запросах которые охватывают большой обьем данных. Лог ошибок пустой, там только инфа что сервер перезагрузился. Или возможно нужно доп логи какие то включить ?... Такое появилось после переустановки mysql, перед этим эти же команды работали - просто долго. Возможно какие то настройки сбились но не знаю в какую сторону смотреть

vbNoName
3/4/2021, 5:34:32 AM
Ответов: 13
Всем привет. Можно ли как то сджойнить 2 таблицы, и задать лимит

на выборку по количеству дочек? Например: Есть таблицы users и projects. В таблице projects есть поле user_id. И вот мне надо выбрать 50 юзеров, и у каждого из них что бы были проекты, но не более 20. Но бегать за проектами каждого юзера в базу не очень хочется. Как можно это реализовать за наименьшее кол-во походов в базу?

Kel_talaras
3/25/2021, 9:16:22 AM
Ответов: 12
Так, очень тупой вопрос. Насколько замедляется запрос в бд от количества заселекченых

елементов ?

lex_it
8/6/2021, 1:27:25 AM
Ответов: 12
Всем привет. Народ, вопрос такой, заставить постгрес выполнять скрипты миграции на большем

количестве ядер можно только выполняя запросы в отдельных соединениях? Или как то можно внутри скрипта параллелить?

flower_hunter
7/21/2021, 8:44:02 AM
Ответов: 54
Всем привет. У меня есть локальное окружение с постгрессом, там находится чуть

больше 1 млн строк. Сама таблица представляет из себя нечто следующее: CREATE TABLE my_table id NOT NULL PRIMARY KEY, ... search_title VARCHAR NOT NULL, another_search_field VARCHAR NOT NULL, deleted TIMESTAMP Другие поля просто опустил за ненадобностью в данном вопросе. Так вот, у меня там был обычный составной индекс для search_title, another_search_field. Начал анализировать планировщика запросов и понял, что индексы у меня не используются. Важно уточнить, что у меня в запросах имеется LIKE оператор, т.е это выглядит примерно так: SELECT * FROM my_table WHERE search_title LIKE '%some title%' AND another_search_field = '...'; В общим, анализ EXPLAIN analyze,verbose,timing,costs,buffers мне показывает, что у меня используется последовательный поиск для запроса Запрос: SELECT id FROM my_table WHERE search_title LIKE '%title%' Результат: Seq Scan on public.my_table cost=0.00..40873.66 rows=1052908 width=16 actual time=0.050..7154.845 rows=1053013 loops=1 Output: id Filter: mt_table.search_title::text '%title%'::text Buffers: shared hit=192 read=27519 Planning Time: 0.069 ms Execution Time: 13513.829 ms На всякий случай отключил последовательную прогонку, но в итоге результат всё равно такой, что индекс не используется. Понятное дело, что set enable_seqscan = off не форсит отмену последовательной прогонки. Но, похоже, что других вариантов нет для планировщика. И в том числе нет варианта использовать индекс. Seq Scan on public.my_table cost=10000000000.00..10000040873.66 rows=1052908 width=16 actual time=24.158..7218.534 rows=1053013 loops=1 Output: id Filter: my_table.search_title::text '%title%'::text Buffers: shared read=27711 written=32 Planning: Buffers: shared hit=11 read=5 dirtied=3 written=5 Planning Time: 0.730 ms JIT: Functions: 4 " Options: Inlining true, Optimization true, Expressions true, Deforming true" " Timing: Generation 1.118 ms, Inlining 4.890 ms, Optimization 12.192 ms, Emission 6.884 ms, Total 25.084 ms" Execution Time: 13776.353 ms В итоге подумал, что проблема в том, что обычный индекс тут не особо уместен, попробовал создать GIN индекс. Потому что исходя из моих требований поиск по LIKE все филды текстовые, а значит и уместность, по идеи, должна быть. CREATE INDEX trgm_idx ON my_table USING GIN search_title gin_trgm_ops WHERE deleted IS NULL; Касаемо deleted, то у меня просто используется принцип soft-delete в приложении. Короче, пробую опять. И результат тот же - индекс не используется. В итоге у меня сложилось ощущение, что я что-то упустил. Может GIN индекс тут неуместен? Может тестовые данные у меня не особо подходящие? Про второе следует уточнить, что я нагенерил 1мл записей, где в качестве поля search_title выступает следующий паттерн: UUID title UUID. Т.е условно говоря, должно быть большое кол-во страниц с повторяющимися данными для LIKE оператора. Потому что сейчас, что индекс есть обычный или GIN, что его нет - одна репка, как говорится.