Задать вопрос
  • Как хранятся индексы в postgresql и mysql?

    mayton2019
    @mayton2019
    Bigdata Engineer
    До postgresql версии 13, если я не ошибаюсь, индексы были в полтора, а то и два раза больше. У нас на проекте версия 9, если не ошибаюсь, там индексы добавляют к памяти иногда по 5 гигов. Нормально ли это? Я слышал что индексы должны быть в пределах мегабайт, а не гигабайт.

    Работаю с базами данных давно. Начинал с Oracle9i.
    Большая часть индексов базируются на B+Tree. Хотя в последнее время в эпоху RocksDb/Cassandra/Tarantool
    появились более интересные стурктуры такие как LSM-tree. Они по скорости записи более эффективны.

    Про то что индексы должны быть размером в мегабайты - я впервые слышу. Возможно это фраза
    вырвана из контекста. Там обсуждалось что-то другое. Поэтому приведите цитату на документацию.
    Желательно от производителя БД.

    В Оракле есть положительный эффект от периодической перестройки индекса (alter index rebuild).
    Этот эффект временный и обычно связан с фактором кластеризации. Его очень любят новички и
    часто сам вопрос является троллингом Oracle-профессионалов. Но это было лет 20 назад. Щас
    в эпоху облак всем стало пофиг.

    Всегда ли не кластиризованные индексы хранятся в оперативной памяти или это как-то можно регулировать?

    Не знаю откуда ты такие вот факты черпаешь. Конечно лучше всю базу данных положить в память.
    Но база обычно многократно превышает память и мы довольствуемся страничным кешем (page cache)
    или buffer pool в других системах. И все они работают по принципу LRU (хранения наиболее горячих
    блоков диска). А будет ли это таблица или индекс или еще какойто подвид объекта - это как повезет.
    Во всех DBMS есть мониторинг этого страничного кеша. Вот посмотри что у тебя там лежит в час
    наибольшей нагрузки. Это и будет самый правильный ответ на твой вопрос. И главное - практически
    подтвержденный.

    Читал, что бывает так, что индекс в таблице индекса хранит сразу данные определенных столбцов, а не ссылки на эти строки в основной таблице. В каких случаях и почему так бывает?


    Приводи ссылки где ты читал потому-что в твоем пересказе получается мистика. Индекс обязан хранить
    копии индексируемых столбцов. Иначе-бы поиск вообще не работал.
    Если ты строишь композитный индекс по 3 полям то он и будет физически хранить 3 копии этих полей
    и ROWID (физический указатель на позицию в таблице для строки). И при определенных условиях
    оптимизатор может выдавать данные не из таблицы а прямо из индекса если в SELECT запросе
    достаточно данных в индексе. Этим часто пользуются для оптимизации.

    Есть альтернативные DBMS наподобие Amazon DynamoDB где индексов нет но есть полная реплика
    таблицы которая по другому кластеризована. Динамо считает это индексом хотя с точки зрения
    классической DBMS это просто маркетинговый обман.

    UPD: R+Tree
    Ответ написан
    1 комментарий
  • Сколько платят за сервера крупные проекты с траффиком в десятки миллионов уников?

    @vitaly_il1
    DevOps Consulting
    Для проекта БЕЗ ТРАФИКА я не понимаю зачем такой большой сервер.
    В целом - все зависит от системы, правильной архитектуры, и т.п.
    Ответ написан
    Комментировать
  • Как понять когда ставить пробел в строках,а когда нет в Питоне?

    xzripper
    @xzripper
    0xC0000005
    В print все аргументы, следующие за первым аргументом, будут добавлены к первому аргументу как единая строка с разделителем пробелом. Однако в input пробел автоматически не добавляется.

    Добавляйте пробел когда вам нужно. e.g 'string ' + '1'.
    Ответ написан
    1 комментарий
  • Ассемблер, почему дизассемблированном коде много ненужных операций?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему не переписать вместо этого
    add ebx,dword ptr [rbp+ECX*4+10h]

    Буквально так написать нельзя, потому что нет такого режима адресации в котором можно было бы использовать вместе Rbp (64-битный) и Ecx (32-битный). Можно было бы написать add ebx,dword ptr [rbp+rcx*4+10h], но для этого счётчик цикла должен был бы быть 64-битным, а он, как мы видим, 32-битный (int i). Т.е. ответ на вопрос "для чего это": для беззнакового расширения 32-битного счётчика цикла в регистр, который можно использовать для доступа к памяти.

    Другое дело, что из исходного кода очевидно, что при обращениях к памяти i не выходит из диапазона 0..9, так что разницы между ecx и rcx нет и не может быть. Возможно я что-то упускаю и у компилятора другое мнение на этот счёт, но может быть он просто туповат и не имеет кода который бы мог использовать эту возможность оптимизации, а может такая оптимизация и есть, но она не была включена во время генерации этого кода.
    Ответ написан
    Комментировать
  • VCS в квадрате. Можно ли с помощью Git контролировать состояние другого Git-репозитория?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Нет, рекурсия работать не будет. Гит увидит, что внутри каталога лежит вложенный репозиторий и проигнорирует его. А в своей базе пометит этот подкаталог как поддерево (subtree), чтобы не сломать.

    Вы пытаетесь соорудить какой-то жуткий костыль только лишь потому, что поленились изучить инструмент, в котором работаете. Поэтому для вас Git сейчас представляется как некая шайтан-машина, которой вы скармливаете команды, которые не понимаете, и в результате получаете ещё более непонятные «неожиданные результаты». Просто потратьте несколько дней, чтобы изучить азы. Не зубрите непонятные команды, а постарайтесь понять логику гита. А она — эта логика предельно проста и гениальна.

    не является сложной задачей что-либо сломать в своем проекте

    Сломать что-то в гите довольно сложно. Вам может только показаться что всё сломалось, но это лишь потому, что вы не понимаете, что делаете.

    каким-то образом снес половину коммитов

    Коммиты в гите — это неизменяемые сущности. Можно лишь создать новые «на замену», но старые не исчезают. Коммиты невозможно удалить без специальных команд очистки мусора.
    Вам показалось что коммиты исчезли, но на самом деле они все остались в репозитории, вы просто их не видите в текущей ветке. Но всё легко откатывается назад, используя журнал Reflog.

    Поэтому было бы неплохо как-либо сохранять прошлые версии Git репозитория

    Reflog это и делает, по сути. Это журнал, который хранит указатели на все состояния проекта, в которых вы когда-либо находились ранее. И эти состояния сами по себе не исчезают, так что вы всегда можете откатиться назад в любое место.

    Мой вам совет: Пройдите 16 коротких бесплатных уроков и полу́чите просветление.
    Ответ написан
    2 комментария
  • Какой программой запустить распределённые вычисления на пользовательских рабочих местах?

    hint000
    @hint000
    у админа три руки
    https://ru.wikipedia.org/wiki/BOINC
    https://habr.com/ru/articles/390749/ "Распределённые вычисления: краткое введение в проекты BOINC"
    Ответ написан
    Комментировать
  • Развитие в инфобез?

    @aleks-th
    Инфобезопасноть это не про Линукс и не про Винду .
    Это понятие гораздо шире.
    И нужно понимать более менее все распространенные системы.
    Ответ написан
    3 комментария
  • Бот на веб хосте?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Могу ли я купить веб-хост с поддержкой nodejs

    Законом не запрещено, а сможете ли Вы или нет - другой вопрос.
    Ответ написан
    Комментировать
  • Как указывать имя пингуемого устройства чтобы к нему не дописывался домен отправителя?

    @d-stream
    Готовые решения - не подаю, но...
    Для nslookup и подобных - точку в конце имени
    nslookup pc1.
    Ответ написан
    Комментировать
  • В чем причина такого результата проверки сетевого кабеля?

    hint000
    @hint000
    у админа три руки
    Физического доступа к кабелям уже, естественно нет, все в бетоне.
    Основное назначение гофры как раз в том, чтобы кабель можно было вытащить из гофры и протянуть новый. Поэтому стараются вести гофру без крутых перегибов, иначе трудно кабель менять.

    Ну а на концах кабеля что? Розетки? Коннекторы?

    физические повреждения кабелей исключаются полностью.
    Значит повреждения математические. :) Ну ещё полтергейст, вуду, диверсия тёмных эльфов и т.п.
    А если серьёзно, вы предусмотрели в нижней стороне гофры маленькие отверстия (типа проколы тонким шилом или иглой)? Нет? А представьте, что по какой-то причине в гофре собралась влага, она там останется на долгие годы, и по сути кабель будет лежать в вечной луже. Даже малюсеньких проколов хватило бы, чтобы вода постепенно уходила из гофры в бетон, распределялась по толще бетона и испарялась. Внимание, следующий вопрос: насколько герметична ПВХ-оболочка кабеля типа UTP? Кто-то даст гарантию, что по всей длине не образовалось ни одного крошечного повреждения ещё на момент прокладки кабеля?
    Ответ написан
    4 комментария
  • Как продолжить клонирование после обрыва связи?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Вопрос задан час назад. Быстрее было запустить заново))
    По теме: продолжить нельзя, надо заново качать.
    Ответ написан
    Комментировать
  • Как удалить метку (tag) полностью?

    erge
    @erge Автор вопроса
    Примус починяю
    удалил непосредственно в файле .git/info/refs эти строки, сделал коммит, пока полет нормальный...
    Ответ написан
    3 комментария
  • Каков путь UX/UI дизайнера?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    На фрилансе развития или вообще нет или мизерное и медленное в сравнении с ростом в офисе. Я об этом здесь пишу много лет. Например: раз, два, три, четыре, пять и шесть. И делаю это со знанием дела, так как несмотря на (не побоюсь этого слова) талант к самообучению, в свои фрилансерские периоды в развитии практически останавливался. Эксперимент проводился многократно на протяжении 23 лет.
    Ответ написан
    Комментировать
  • Как увеличить скорость линии (прием и передача)?

    @accountnujen
    проблема в сетевой карте (модеме).
    вот так она выглядит:
    Hf15726462c6544ceb8e54ef12770a14eC.jpg
    здесь видим 2 антенны 1x1: 2.4гц и 5гц. Если антенна на 5 одна, то твой максимум - это 433.
    Чтобы получить больше - нужно иметь mimo модем, типа 2x2, 4x4
    Ответ написан
    1 комментарий
  • Как сделать, чтобы при сборе определённого количества монет, игра завершалась?

    Maksim_64
    @Maksim_64
    Data Analyst
    Если есть игра значит есть некий цикл в котором происходят события. До цикла объявляешь переменную счетчик монет, в цикле обновляешь значение переменной. Например count = 0 это инициализация до цикла. count = count + profit это в цикле, где profit это количество монет которое игрок получил за определенное действие, ну и проверочка если count равен твоему определенному количеству, то остановка цикла и выход из игры.
    Ответ написан
    2 комментария
  • Сколько должна весить папка сайта?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Это неправильно поставленный вопрос. Хорошо, когда время ответа на любой запрос к сайту укладывается в 300 миллисекунд. "Папка сайта" при этом может весить 40 терабайт.
    Ответ написан
    Комментировать
  • Где лучше учиться на программиста, если тебе за 35?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Возраст значения не имеет, только личные качества и жизненные обстоятельства. Я рекомендую просто взять учебник и обучаться самостоятельно. Способность к самообучению - главный навык разработчика, без него всё равно успеха не добиться.
    Ответ написан
  • Можно ли уточнить о вопросах перед собеседованием?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Если компания нормальная, то прямо в вакансии написано каких знаний ожидают от кандидата.
    Ответ написан
    Комментировать
  • Как инвертировать значение?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    open !== invert
    Ответ написан
    Комментировать
  • Как на самом деле работает параллелизм?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Хм тут вам помогут книги
    Эндрю Таненбаум
    Торвальдса
    Русиновича
    Helen Custer , David N Cutler
    David A. Solomon
    https://slideplayer.com/slide/6865915/

    Гляньте вот на эту презентацию https://www.hse.ru/data/2010/12/24/1223886397/%D0%...

    А вот тут прикладная часть
    https://basis.gnulinux.pro/ru/latest/basis/15/15._...

    В общем тема большая и гуглить вам много, но основных авторов я дал
    Ответ написан
    1 комментарий