• Можно ли всем строковым полям задавать тип TEXT и повлияет ли это сильно на производительность?

    @Vitsliputsli
    Melkij, а какая разница для вопроса, какие у него лавры? Если он нормально не объясняет в ответе.
    Но должен исправиться, в PostgreSQL тип char реализован по-мудацки, поэтому в этой СУБД его действительно лучше не использовать, но при нормальной реализации как в других СУБД это не так.
    Написано
  • Можно ли всем строковым полям задавать тип TEXT и повлияет ли это сильно на производительность?

    @Vitsliputsli
    Приведу полную цитату:
    Type character(N) is a hangover from the days of punched cards.
    Don't use it. It has weird semantics concerning trailing spaces,
    which are almost never the behavior you actually want, and cause
    interoperability issues with type text. (Text is Postgres' native
    string type, meaning that unlabeled string constants will tend to
    get resolved to that.)

    т.е. единственная претензия к типу, что Том не знает как он работает, и для него неожиданно поведение этого типа. С другой стороны отвечая на вопрос того, кто создает такие поля:
    contract_address character(42) NOT NULL,
    buyer_address character(42) NOT NULL,
    seller_address character(42) NOT NULL,

    такому действительно можно рекомендовать лучше вообще не использовать тип char.
    char отличное решение там, где он действительно нужен, где строго определено кол-во символов. но если у вас не высоконагруженное решение, и лишний байт на каждое поле не проблема, то можно всегда использовать varchar.
    Написано
  • Можно ли всем строковым полям задавать тип TEXT и повлияет ли это сильно на производительность?

    @Vitsliputsli
    MishaXXL,

    По поводу памяти это экономия на спичках использовать VARCHAR или за этим следят?

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

    Сергей Соловьев,
    varchar и text - по факту одно и то же, а char(n) как следует из документации самый медленный

    несовсем так, как написал выше, всегда выбирайте тот тип, который подходит под ваши данные. char(n) не самый медленный, а может быть даже менее затратный чем varchar, если вы в нем храните подходящие данные. Т.е. если вы храните например 2-х символьный код страны, char(2) - отличное решение, а вот varchar(2) будет затратнее, т.к. будет хранить ненужную здесь длину строки для каждой ячейки. Но, если вы возьмете тип char(255), и будете в нем хранить строки длиной 10 символов, то затраты будут в разы больше, чем для varchar(255). Поэтому используйте те типы, которые подходят для ваших данных.
    Написано
  • Как определить тяжелые запросы?

    @Vitsliputsli
    Akina, автор сам сообразит какая цифра должна стоять, только он знает наверняка, для когото и в 10 раз меньше будет непозволительно долго.
    Написано
  • Какой из вариантов схемы базы данных лучше?

    @Vitsliputsli
    разделить таблицу грузов так, что в одной таблице будут храниться атрибуты груза (габариты и вес), а в другой – экземпляры грузов

    Т.е. в одной будет хранится описание товара, а в другой конкретные экземпляры, где-то представленные, тогда да, это правильно, это нормализация.
    Написано
  • Как удалить запись в таблице MySQL по трём параметрам?

    @Vitsliputsli
    My1Name,

    Проектируется большая БД (в теори, высоконагруженная частотой запросов) с множеством разных таблиц. Необходимо оптимизировать скорость доступа к одной записи.

    Это искусственная проблема, т.к. проблемы по факту нет, но вы чтото хотите решить. Оптимизация это всегда жертва чемто ради чегото, поэтому нужно знать, что мы хотим улучшить, и чем готовы пожертвовать.
    В общем случае, обращение по первичному ключу всегда быстрее, чем по полям, хоть с индексом, хоть без. Первичный ключ есть всегда, то что вы не создали соответствующее поле, просто лишает вас возможности к нему обратиться, MySQL создаст его сам.
    А вопросы оптимизации чаще всего решаются проектированием БД, а не вставкой в запрос магической фразы "сделай все хорошо". Поэтому не будете менять структуру, не получите изменений.
    Написано
  • Как удалить запись в таблице MySQL по трём параметрам?

    @Vitsliputsli
    My1Name,
    Проектируется большая БД (в теори, высоконагруженная частотой запросов) с множеством разных таблиц.

    не выдумывайте искусственных проблем, постройте обычную БД в соответствии с реляционной теорией. А потом уже решайте просадки производительности из-за "высоконагруженности", если таковые возникнут.

    Необходимо оптимизировать скорость доступа к одной записи.

    Тогда обращайтесь к этой записи по primary key, а не через индексы. Либо суррогатный ключ, как уже предлагали, либо составной ключ (и то, в этом случае надо посмотреть какие типы данных у этих полей).
    Написано
  • Как удалить запись в таблице MySQL по трём параметрам?

    @Vitsliputsli
    My1Name, а в чем собственно проблема? чем мешает удаление по 3 полям? зачем хочется писать только 1 условие?
    Написано
  • Основная работа и другие проекты. Как к этом относится ваше начальство?

    @Vitsliputsli
    Михаил Р., у вас реально kpi? Если не секрет, то как считают?
    Написано
  • Основная работа и другие проекты. Как к этом относится ваше начальство?

    @Vitsliputsli
    Mark220, никто не знает, как к этому отнесется конкретный человек.
    Тем не менее, адекватному будет пофиг, если нет нареканий по вашей работе.
    Написано
  • Хэш-таблица без разрешения коллизий?

    @Vitsliputsli
    Теоретически, можно при обнаружении колизии увеличивать длину хеша, в большинстве случаев это будет решать проблему, но в частных случаях даже на небольшом колве данных можно будет нарваться на длину хеша равную длине значения. Опять же можно проверять разные хешфункции, но все это не гарантирует короткий хеш, а замедлять работу будет, поэтому решение колизий проще и быстрее.
    Написано
  • Почему SSH продолжает слушать на 22 порту, хотя я его поменял?

    @Vitsliputsli
    Последовательно, пока какойто пункт не сработает:
    - проверить рестартанул ли systemctl sshd
    - не рестартануть, а остановить и затем запустить sshd
    - проверить какой конфигурационный файл использует sshd
    - перепроверить содержимое конфигурационного файла
    - ребутнуть систему
    - использовать бубен
    Написано
  • Как удаленно включить стационарный пк с андроид устройства?

    @Vitsliputsli
    Алексей Ярков,

    Вот у меня стационарный комп и иногда отключают электричество. Когда включают обратно и питание в розетке появляется, то компьютер сам не включается.

    Обычно для этого есть специальная настройка в биос
    Написано
  • От чего зависит количество единоверменных запросов, которые может обрабатывать БД?

    @Vitsliputsli
    MishaXXL, если говорить про высоконагруженные системы, то это не просто сервер, а целое архитектурное решение. Грубо говоря это не одна СУБД, а несколько, именно так решается вопрос масштабирования.
    Если говорить про одну СУБД, как написал выше, идет переключение между несколькими запросами, в итоге на ненагруженной СУБД запрос к примеру может выполняться 1мс, а при нагрузке 10мс.
    Написано
  • Как передать и потом забрать из Redis готовый массив данных PHP?

    @Vitsliputsli
    Сериализация вещь достаточно опасная, а т.к. редис скорее всего без пароля, то тем более.
    А т.к. у автора скорее всего массив строк, то json будет вполне хорошим решением.
    Насчёт "влияет ли encode и decode на скорость" - конечно влияет, как и любая строчка вашего кода. А больше всего влияет Битрикс, поэтому не забивайте голову такой экономией, там все достаточно быстро. Столкнётесь с проблемой тогда и будете её решать, но скорее всего она будет в другом месте.
    Написано
  • Как лучше построить архитектуру ML-сервиса?

    @Vitsliputsli
    Everything_is_bad, я так понимаю речь идет о сервисе который будет управлять моделями, внутри себя проводя вычисления по ним, иначе фраза про параллельное вычисление не имет смысла. А если такой сервис уже есть, то кто в него будет слать запросы действительно без разницы, тут согласен.
    Написано
  • Возможна ли sql инъекция?

    @Vitsliputsli
    Карлиндоу Мэрлифи,
    если всё настолько сложно, значит очень вряд ли использовалась эта уязвимость

    Сложно искать новые уязвимости, но если она найдена, то несложно проверить какой-либо сервис на устойчивость к ней. Если уязвимость не описана в публичном пространстве, это не значит, что она неизвестна в других кругах.
    Тем более, что This function was deprecated in PHP 4.3.0, а значит ее давно никто ни на какие уязвимости не проверяет.
    Написано
  • Влияет ли наличие сведений о прохождении лечения у психотерапевта на отказ в офере?

    @Vitsliputsli
    Знаю разработчика, который проходил лечение антидепрессантами от панических атак, не скрывает это, и прекрасно работает в одном всем известном банке.
    Написано
  • Почему следующий цикл НЕ бесконечный?

    @Vitsliputsli
    А что за задача такая интересная? Очевидно, что втыкание бесконечного цикла приведет к исчерпанию памяти, зачем?
    Написано
  • Как лучше хранить и быстро искать связанные данные?

    @Vitsliputsli
    Другой вариант: составной ключ id + alias_id.
    Каждый термин имеет уникальный id + alias_id. У всех терминов группы один и тот же id.
    Написано