![]() |
как узнать занимаемый размер в My SQL
картинки хранятся в MySQl
а как узнать размер етой картинки какой запрос? |
shuron
какой именно размер? данных, по вертикали? |
Тоже не въехал. В базе хранятся сами картинки или ссылки на них? Если ссылки то вот (на перле):
Код:
use Image::Info qw(image_info dim); # модуль для определения параметров изображения |
я имеюю ввиду сами картинки хранятся в базе...
в BLOP и вот размерчик занимаемой памяти данной картинки... как бы узнать на перле я не сильно рублю... для PHP надо |
shuron
Если речь идет о MySQL то юзай length. |
угу попробую...
а может примерчиком? |
А что примерчиком требуется?
На РНР: BLOB же хранится и извлекается в строке, значит можно использовать стандартную функцию strlen() - которая и покажет размер в байтах (@_is_absent наверное что-то вроде этого имел ввиду). Но я думаю правильнее использовать функцию mysql_fetch_lengths(). |
Цитата:
|
Я тоже думаю что запросы эквивалентны, только если данные из таблицы уже выбраны и есть ресурс на эту таблицу, эта функция, должна быстрее намного работать, т.к. не производит новых запросов к БД, а только извлекает информацию...
Если же просто нужно получить информацию о том что хранится в базе без ее извлечения то, наверное лучше length(). |
Hubbitus
согласен :) Правде еще можно выбирать вместе с данными и их длину.... |
Цитата:
Хотя конечно можно и явно указать это в запросе. |
Дайте пример кода...
вот я вытаскиваю конкретную картинку из BLOP в переменную.. как определить размер этой картинки (размер занимаемой ей памяти) |
А, ну если уже вытащена, то можно просто в PHP использовать strlen($вытащенная_переменная)...
Или так например: Код:
$result=mysql_query("select image from table where .....");Код:
$result=mysql_query("select image, length(image) from table where .....");И если необходимо получить только размер хранящейся картинки, без ее получения, то однозначно лучше последний вариант (тут я полностью согласен с @_is_absent) |
спасибо обоим!!!
|
Возник вопрос:
в базе (mysql) лежат несколько записей пользователя как узнать, сколько места в байтах они занимают? Код:
$result=mysql_query("SELECT length(page_content) FROM pages WHERE page_userid=1");Подскажите, плз. |
Элементарно, Ватсон...
SELECT sum(length(page_content)) FROM pages WHERE page_userid=1 |
Ладно, с этим разобрались. Спасибо.
А как же насчёт размера, занимаемом на диске? 1 символ = 1 байт? |
Andy1
место, занимаемое на диске зависит от типа поля. varchar занимает (кол-во символов в текущей ячейке + 1) байт, а text, например, занимает 64 кб независимо от длины сообщения в этой ячейке. update: сорри, соврал. textы и blobы как и varchar требуют памяти в соответствии с длиной содержимого.. |
на 100% утверждать не буду (не уверен, что майскл с чем-то не путаю) - но если БД в юникоде - может различаться в разы - один символ 2 байта
|
| Часовой пояс GMT +4, время: 17:14. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.