Задать вопрос
Ответы пользователя по тегу MySQL
  • Как найти вхождение одной строки в другую строку средствами Mysql?

    Как десериализовать значение поля? - вопрос с той же самой сутью. Способа нет, любой способ сделать это с помощью БД - костыль, причем очень такой хороший, настоящий.

    LIKE нужно использовать в других случаях, когда действительно нужно найти подстроки в строках, но в вашем случае речь идет о сериализованных данных (судя из примера). Вы же бы не стали использовать для этого регексп.

    Ответ на ваш вопрос: нет.
    Ответ написан
    Комментировать
  • Как десериализовать значение поля?

    Нет.

    Такие поля, в целом, против идеологии реляционной БД. Строго говоря, хранение таких значений в некоторых случаях может противоречить первой нормальной форме (но не всегда). А SQL - это язык, находящийся на уровне отношений, то есть вы на уровне "таблиц и атрибутов", но не данных.
    Ответ написан
    Комментировать
  • Как одним запросом добавить записи в несколько таблиц и получить их id?

    LAST_INSERT_ID(), думаю, то, что вам нужно.
    Ответ написан
    Комментировать
  • Вывод pdf из MySQL?

    Как принятно на русских ресурсах не отвечать на вопрос, а давай советы :) Но в этот раз совет важный и даже юзабельный.

    Хранить файл в БД - плохо. Может показаться, что это удобно (например, только бэкап БД спасет всех).

    Но на самом деле:
    • Растет размер БД. Что делать, если он станет запредельным из-за сохраненных там файлов?
    • Возрастает нагрузка на диски/оперативную память сервера БД.
    • Офигенно растут логи, а это дополнительная нагрузка на диск.
    • Замедлится передача данных от MySQL, т.к. там, во-первых, может быть сеть со своей пропускной способностью, а во-вторых, MySQL будет передавать большой файл маленькими частями (снова оверхед на I/O диска и сети).
    • То, что можно отдать обычным nginx'ом как статику, отдается через костыли.

    Хранить блобы можно, конечно, но рано или поздно сделаете БД узким местом. Если и хранить блобы, то очень-очень маленькие, но и даже это спорно и зависит от задачи.

    Поэтому отказывайтесь от идеи.

    Просто в этих пдфках содержаться персональные данные пользователей и нельзя чтобы они имели прямые ссылки(доступ к ним открывается только после авторизации)

    Причем здесь БД? Храните файл в том месте, которое не сервится наружу. А доступ до файла регулируйте при запросе. То есть у вас есть какой-то url для файла, там содержится его id, например. Вы проводите авторизацию: если можно забрать файл, спрашиваете у БД ссылку, где он находится на диске (а это место наружу не видно), и отдаете файл подобным образом, как делаете сейчас. НО, если ожидаются крупные файлы, читать файл нужно по частям, иначе можете закончить оперативу. В фреймворках обычно есть для этого инструменты, кстати.
    Ответ написан
    3 комментария