• Что значит современные технологии БД?

    terrier
    @terrier
    Судя по всему, вам задали реферат в колледже или каком-то плохом институте. В этом случае не надо париться, а надо скопипастить произвольный кусок документации отсюда и это уже будет на достаточно хорошем уровне.
    Ответ написан
    Комментировать
  • Есть ли в С++ аналог #region из C#?

    terrier
    @terrier
    Да
    #pragma region
    https://msdn.microsoft.com/ru-ru/library/b6xkz944.aspx
    Однако, понятно, что это нестандартное расширение и где-то за пределами Visual Studio работать не обязано
    Ответ написан
    Комментировать
  • Какую СУБД выбрать для большого объема документов?

    terrier
    @terrier
    Ну, смотрите - в чем проблема с ES в качестве primary database: он может периодически терять апдейты, плохо ведет себя со split-brain, нет ACID, бывает реплики ведут себя неразумно и т.д. ( какие-то баги фиксятся, какие-то добавляются)
    Однако, возвращаясь к вашей задаче - у вас всего 2 терабайта данных и почти нет записи, только чтение. И, думается мне, у вас там не 40 машин в кластере, верно?:). То есть сценарий типа: "Мастер вырубился при сплит-брейне, 2 слейва провозгласили себя мастерами, пока чинили на них позаписывали по 5 терабайт противоречивой информации, мы все про***ли, где бэкапы" вам на самом деле не грозит.
    Так что почему бы не хранить эти несчастные 2Тб в эластике + бэкап/снэпшот плюс еще где-нибудь для надежности против нашествия инопланетян ( у вас все равно данные почти иммутабельные).
    Ответ написан
    Комментировать
  • Как выбрать все записи за неделю после определенного времени?

    terrier
    @terrier
    Так ведь выбрать все записи, которые
    1). После начала недели
    2). Из таймстемпа извлечь время, оно должно быть позже 19:30
    разве нет?
    Ответ написан
    3 комментария
  • Вопросы по статьям на хабре и википедии про уровни изоляции транзаций - почему так написано?

    terrier
    @terrier
    Вы, похоже, не совсем понимаете, суть понятия "транзакция". Оно означает только то, что логическая группа операций либо выполнится полностью, либо полностью откатится. Что "увидят" соседние транзакции в процессе работы конкретной транзакции - зависит именно от уровня изоляции. Может быть примерно все, включая промежуточные итоги незакоммиченной транзакции, а может быть совсем ничего
    Ответ написан
    6 комментариев
  • Как проверить 2 sql запроса на полное соответствие?

    terrier
    @terrier
    Я так понимаю, вам хотелось бы, чтобы прямо и названия колонок и типы строго совпадали?
    Портабельного способа сделать такое, насколько я понимаю, нет, так что проще всего
    1). Получить названия колонок из обоих запросов. Сравнить.
    2) Получить типы колонок из обоих запросов. Сравнить.
    3). И вот уже после этого - EXCEPT.
    Все это способом специфичным для вашей базы.
    Если все совпадает - запросы идентичны.
    Ответ написан
    Комментировать
  • Как победить переборные задачи?

    terrier
    @terrier
    Они ещё помнят, что мы рассматриваем третий кейс

    Ключевое слово помнят - похоже, что вас беспокоит ( якобы имеющийся у вас ) недостаточный объем краткосрочной памяти.
    В связи с памятью можно отметить несколько моментов:
    - Сама по себе идея "что-то я недостаточно умный/что-то у меня плохая память" может быть некоторым неврозом. У него есть определенные психологические причины, но как "побеждать" его понятно - отдохнуть и подумать отстраненно о своей жизни
    - Память достоверно связана с интеллектом, а вот то, что именно общую память можно существенно увеличить некими тренировками сейчас считается спорной идеей.
    - Могу однако, поделиться собственным опытом "прокачки" краткосрочной памяти - я пробовал, то что мне казалось разумным: учить стихи, учить иностранные языки, шахматы, решать математические задачи "в уме" + спорт и хороший сон. Субъективное ощущение результата - я "насобачился" в уме варианты, какую-то картинку или дерево принятия решений довольно большого объема. Уверенно сказать, что я стал "умнее" или память улучшилась не могу. Однако, теперь я точно уверен, что бумажка и ручка - лучшие помощники в рассуждениях.
    Ответ написан
    1 комментарий
  • Нужно создать оповещения для пользователя. Как отслеживать изменения в БД?

    terrier
    @terrier
    Ну, триггеры на изменение данных добавить.
    И вот функция триггера пусть уже пишет в очередь сообщений или как у вас там данные клиенту отдаются.
    Ответ написан
    Комментировать
  • Завершится ли транзакция с update, если в вызываемой процедуре будет ошибка?

    terrier
    @terrier
    вызывает процедуру eq_statuses_techtracker(), которая может завершится с ошибкой

    "Завершиться с ошибкой" в смысле бросить исключение? Тогда это откатит всю транзакцию ( если никто это исключение не ловит )
    Ответ написан
    Комментировать
  • Что делать с ошибкой в postgreSQL 9.5 отношение dbo.users не существует?

    terrier
    @terrier
    Хрустальный шар подсказывает мне, что вы мигрируете с SQL Server. Если вы уже с ним не работаете, то префиксы имени владельца ( dbo в вашем случае ) нужно удалить.
    Ну и вообще ознакомьтесь
    https://wiki.postgresql.org/wiki/Microsoft_SQL_Ser...
    Ответ написан
    3 комментария
  • Java developer VS Oracle developer/DBA - что перспективнее?

    terrier
    @terrier
    1) ЗП - больше - лучше;

    Не особо определяется технологией. В данном случае - примерно одинаково

    2) Широкая распространённость и низкая проекто-специфичность технологии

    Java wins. У DBA все-таки ограниченная применимость.

    3) Перспективы перехода на смежные развивающиеся технологии

    И там и там вам никто не помешает перепрыгнуть на модные Scala или NewSQL - решения.

    Настораживает, на самом деле название "Full stack junior Java developer" - фулл-стэк в данном контексте - это что - джава, джаваскрипт и кофе варить директору?
    Вторая контора готова предложить кучу вариантов вчерашнему студенту - тоже не очень хороший знак.
    Итого, посмотрите на условия в обеих компаниях ( не кидают ли по деньгам, какой офис и тэдэ) и идите туда, где интересней. Вам перейти на что-то другое будет еще совсем не поздно.
    Ответ написан
    Комментировать
  • Macbook Pro 2015 год, стал разряжаться за 1-2 часа?

    terrier
    @terrier
    Мониторинг Системы -> Энергия,
    посмотри кто жрет энергию. Если там видно - прибей процесс. Так же обрати внимание на вкладку CPU, там тоже кто-то вредный/забагованный может спалиться.
    По здоровью аккумулятора - поставь Battery Health. Там собственно отображается текущий максимум батареи. Если он типа 50-60% от оригинального - аккумулятор деградировал, меняй.
    Ответ написан
    Комментировать
  • Left join vs Несколько селектов?

    terrier
    @terrier
    1). Ваш "SQL" больше похож на псевдокод
    2). Эти запросы не эквивалентны ( почитайте внимательнее про LEFT JOIN )
    3). Первый вариант быстрее ( при разумных допущениях ), второй - известный антипаттерн, применяемый начинающими программистами, которых напугали "медленными джойнами". На самом деле джойны - это именно то, что реляционные базы могут делать очень быстро и очень продвинуто.
    Ответ написан
    3 комментария
  • Различия между Postgresql и Mysql?

    terrier
    @terrier
    Если вы переходите с MySQL на Postgres, то ничего особо сложного быть не должно - есть много автоматических конвертилок для миграции в этом случае. Сломается только то, что и так работать было не должно:)
    В обратную сторону возможны сложности, все-таки у посгреса есть много фич, которые mysql не знакомы или пишутся по другому.
    Ответ написан
    Комментировать
  • В ubuntu через какое-то время заедает звук, если не трогать мышь. Как исправить?

    terrier
    @terrier
    Настоящий линуксоид бы автоматизировал подергивание мышкой каждые 30 секунд.
    Ответ написан
    Комментировать
  • Есть ли такие направление в физико-математическеских факультетатах?

    terrier
    @terrier
    Есть ли такие специальности, где существует физмат направление и слегка программирование

    Ну, собственно, да - смотрите такие вузы как МФТИ и МИФИ, физика там в большинстве специальностей в большом количестве идет "по умолчанию", чуть-чуть некая "информатика" там идет, потому что это обязательный курс, и в некоторых факультетах подмешивается значительное количество CS.
    Классические примеры - ФРТК МФТИ, который задумывался как кузница кадров для радиоэлектроники, но выпустил уже много компетентных программистов или, скажем, тот случай, когда топовая российская команда разработчиков СУБД PostgreSQL вышла с физфака МГУ.
    Так что такое сочетание нередко ( как бы это ни показалось кому-либо грустным ).
    Ответ написан
    2 комментария
  • Поиск работы. python/go/php?

    terrier
    @terrier
    мне либо сидеть и ждать этой чудесной вакансии

    Почему сидеть и ждать? Написать weekend-проект на каждом из тех языков, которые нравятся, выложить на гитхаб и добавить в резюме. Резюме рассылаете всем, в нем указываете, мол пишу на python/go/php, коммерческого опыта нет, вот есть гитхаб. Уровень всем понятен будет. На первую работу берите, что дают, нужно будет немного освоиться в реалиях коммерческой разработки, а вот потом уже будете выбирать среди предложений.
    Ну и да, я бы на вашем месте поднажал бы на PHP, а вот Go оставил бы до лучших времен, он модный, но нишевый.
    Ответ написан
  • Журналирование в mongodb и postgresql - правильно ли я его понимаю?

    terrier
    @terrier
    и тут я вспомнил что у postgresql есть параметр wal_writer_delay = 200ms, что-же получается и у postgresql может быть такая ботва что клиент думает что строка сохранена а все накрылось до сброса журнала на диск???

    По постгресу. Если включено synchronous_commit = on , то в любом случае перед тем как сообщить клиенту об успехе ждем записи в WAL на диск. Это дефолтные и почти всегда разумные настройки.
    В случае synchronous_commit = off гарантируется только то, что база даже в случае падения ( метеорита ) останется в непротиворечивом состоянии, но WAL будет записан на диск через некоторое время, зависящее от настройки wal_writer_delay. Это режим "готов получить шанс потери данных при падении в обмен на увеличение производительности".
    Ответ написан
    Комментировать
  • Как правильно разгрузить таблицу статистики для такого проекта?

    terrier
    @terrier
    Да, партиционирование по времени здесь вполне подходит. Разницы между партиционированием и отдельными таблицами в вашем случае особо нет, но с партиционированием, скорее всего окажется меньше мороки.
    Статистику и аналитику лучше читать с отдельной реплики, не с той, на которую идет активная запись.
    В 5.7 есть релевантные для вас улучшения, но на самом деле после минимальной настройки все вполне себе взлетит.
    P.S.
    не менее 150 тысяч записей в сутки.

    Почти 2 записи в секунду. Можно хоть на айфоне базу гонять :)
    Ответ написан
  • Всегда ли нужно использовать внешние ключи?

    terrier
    @terrier
    Есть ли выигрыш в производительности, если использовать внешние ключи в postgresql?

    Видимо имелось в виду, есть ли выигрыш в производительности если НЕ использовать внешние ключи. Да, может быть. Во-первых сама по себе проверка foreign key не бесплатна - это system-level триггер. Во-вторых в постгресе берется ( среди прочего ) SHARED лок на строку в родительской таблице. Соответсвенно - нужно учитывать влияние этого на производительность и следить за дедлоками.

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