Подскажите есть ли ограничение на длину запроса в MySQL? и если есть то какое? 50кб работает точно, а больше?
Теоретически не помню есть ли ограничение, на практике лучше не юзать большие запросы (в этом нет никакого реального смысла)
pascal, ограничение есть, на сколько я помню, по умолчанию это 1Мб, но может быть увеличено вплоть до 1Гб. Vladson, если смысл не виден, это не значит, что его нет. MySQL между прочим поддерживает хранение типов данных с длинной вплоть до 2^32байт (4Гб). pascal, 50кб не может вызвать проблем у субд, если проблемы всётаки есть, то проверяйте синтаксическую корректность SQL запроса
открой phpMyAdmin и в любой базе нажми импорт, там увидеш: Код (Text): Импорт Файл для импорта Месторасположение текстового файла (Максимальный размер: 2,048КБ) В настройках MySQL my.ini можно поменять значение на выше или ниже как ты пожедаеш. Это если я неошибаюсь 2 097 152 симбола.
xak2, у ПМА собственные ограничения, он читает весь дамп в оперативную память, парсит и строит отдельные SQL запросы (так что ограничение не связано с максимальной длиной SQL запроса). В результате этого он жрёт памяти в несколько раз больше размера файла и натыкается на лимиты PHP или операционной системы, после чего благополучно прибивается. Другими словами, это ограничение связано с ленью разработчиков ПМА написать правильный загрузчик дампов (который впрочем всё равно упрётся в максимальный размер загружаемых по HTTP протоколу файлов, по умолчанию 8мб).
Приведи хоть один веб-скрипт где требуются запросы размером в 4Гб ? большенство скриптов ограничиваются размером вставляемых в форму данных что чаще всего не привышает 30-50кб
Vladson, достаточно привести примеры, где необходимы SQL запросы более 50кб. 1. Эффективное и быстрое заполнение таблицы запросами INSERT INTO tab_name (x,y)VALUES('q','e'),('r','t'),('y','u'),('i','o'),,,,,... 2. Безопасное хранение произвольных файлов, файловых архивов и тд и тп. Примером будет PHPbb, vBulletin и др.
Это исключение а не правило, восстанавливать дамп крупных баз нужно не каждый день Чем FS не устраивает ?
Тем, что при наличии в скриптах не критической уязвимости на произвольное подключение пхп файлов, можно загрузить на сервер и подключить к скрипту хороший бэкдор.
Учите мат часть, больше сказать даже нечего (подключение пхп файлов это критическая уязвимость в любом случае и её результат можно назвать только одним словом "3.14@$%ц", и базы сотрут, и червей зальют, и даже спам с сервера разошлют)
Vladson, читайте внимательно, если пишут "не критическая", значит не критическая, ничего не сотрут не залью и не разошлю, до тех пор пока не смогут загрузить на сервер свой скрипт. Критической она станет если пхп сконфигурирован с разрешённым allow_url_fopen, да и то если подключение скриптов было уж совсем произвольным. Про мат часть я бы с удовольствием послушал, но боюсь вам нечего мне сказать.
Это в любом случае не ответ на мой вопрос Так что ещё раз и подробнее почему файлы надо хранить в базе если можно не изобретать велосипед с квадратными колёсами и использовать созданные для этого механизмы ?
а еще Владсон не всегда видит дальше своего носа. и это не потому, что нос у него такой длинный) мне вот требуется вставлять в базу огромные портянки поисковых запросов, больше 10 тысяч за раз. так что ограничение на размер sql запроса играет роль. правда, даже дефолтных 2 метров хватает с головой
Во первых, узнать какое ограничение на запрос у вашего сервера можно таким запросом SHOW VARIABLES LIKE 'max_allowed_packet'; Во вторых, на тему зачем нужны длинные запросы. Длинные запросы нужны не только для вставки данных в базу. Например, информация в моей базе разделена по темам в разных таблицах. И исключительно в очень редких случаях, нужно вывести информацию на основе всех этих таблиц. Естественно я объединяю данные из этих таблиц с помощью JOIN. Каждое условие на соединение таблиц очень сложное и весит по 5 тыщ символов(5 kb). Сейчас у меня 10 таблиц объединяется в JOIN и запрос весит 50 kb, но количество этих таблиц постепенно увеличивается, соответственно запрос тоже становится больше, а кроме этого и сам запрос постепенно модернизируется и становится тяжелее.
Мужики, а что в MariaDB 10.4 как-то по другому что ли? Если например пачкой INSERT'ы нескольких картинок в BLOB'ы делаю, почему-то ругается на длину запроса, хотя файлы совокупно меньше максимальной длины. Может там распухает при экранировании бинарные данные?