Pushing the limits

Я, кажется, не рассказывал об этом смешном случае? Подходит ко мне как-то товарищ по работе:
– Володя, ты же работал с MySQL… Не знаешь, как в нём увеличить максимальный размер запроса?

Верный принципу “отвечай не на вопрос, а на то, что пытаются спросить”, я быстренько прокручиваю в голове варианты. Зачем ему это? Предельный размер запроса обычно такой, что достичь его нереально. Мегабайт или два. Текст такой длины – это как “Война и мир”. Ни один человек такого запроса не напишет.

Может, он генерирует его автоматически?

– А какой длины у тебя запрос? – спрашиваю я

– Два гигабайта.

– …………

Если бы это был баттл-шонен, тут бы началась нарезка из шокированных лиц всех участников сражения. Воины бросают оружие и отступают плотнее к товарищам, потому, что панический ужас охватывает их при виде человека, у которого SQL-запрос размером два гигабайта. Мужчины скромно прикрывают свои автоматически сгенерированные SQL-запросы, которые, как теперь выясняется, совсем не такие большие, как им казалось!

Два гигабайта. Это приказ серверу в четырёх тысячах томов, указание, для хранения которого нужно выстроить величественную библиотеку, это, можно сказать, то самое Слово – могучее и всеобъемлющее – во исполнение которого родилась вся вселенная. Если бы этот приказ зачитывал человек, на его оглашение ушло бы несколько лет.

И какими данными нужно оперировать, чтобы о них можно было дать столько уточнений?!

Реальность оказалась прозаична. Программист генерировал сценарий некоторой 3D-сцены, а потом сохранял его в MySQL-базу (sic!), передавая в хексе:
INSERT INTO tableName VALUES Data=0x’5B7716A6A18… – и ещё два миллиарда букв.

Реальность также оказалась прагматична. Вместо того, чтобы переучивать программиста делать что-нибудь более… здравомысленное, админ просто поднял максимальный размер пакета в MySQL до трёх гигабайт. Пока хватает.

Напишите комментарий:

Если хотите, можно залогиниться.

*