imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 31.03.2004, 20:40     # 1
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
как узнать занимаемый размер в My SQL

картинки хранятся в MySQl
а как узнать размер етой картинки какой запрос?
shuron вне форума  
Старый 31.03.2004, 21:01     # 2
Vaulter
Guest
 
Сообщения: n/a

shuron
какой именно размер? данных, по вертикали?
 
Старый 31.03.2004, 21:07     # 3
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
Тоже не въехал. В базе хранятся сами картинки или ссылки на них? Если ссылки то вот (на перле):
Код:
use Image::Info qw(image_info dim); # модуль для определения параметров изображения
my $img_file_size = -s "$path_to_image"; # размер файла рисунка
my $info = image_info("$path_to_image");
if (my $error = $info->{error}) { die "Can't parse image info: $error\n"; }
my $img_color = $info->{color_type}; # количество цветов
my ($img_width, $img_height) = dim($info); # размеры по горизонтали и вертикали
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!
Ghost вне форума  
Старый 31.03.2004, 21:33     # 4
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
я имеюю ввиду сами картинки хранятся в базе...
в BLOP и вот размерчик занимаемой памяти данной картинки... как бы узнать

на перле я не сильно рублю...
для PHP надо

Последний раз редактировалось shuron; 01.04.2004 в 01:52.
shuron вне форума  
Старый 01.04.2004, 06:14     # 5
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
shuron
Если речь идет о MySQL то юзай length.
__________________
Nunc est bibendum
is_absent вне форума  
Старый 02.04.2004, 00:29     # 6
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
угу попробую...

а может примерчиком?
shuron вне форума  
Старый 02.04.2004, 00:56     # 7
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
А что примерчиком требуется?
На РНР: BLOB же хранится и извлекается в строке, значит можно использовать стандартную функцию strlen() - которая и покажет размер в байтах (@_is_absent наверное что-то вроде этого имел ввиду).

Но я думаю правильнее использовать функцию mysql_fetch_lengths().
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 02.04.2004, 16:58     # 8
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
Цитата:
Но я думаю правильнее использовать функцию mysql_fetch_lengths()
Честно говоря не знаю точно, как работает эта функция, но имхо это эквивалентные запросы будут. и по времени и по нагрузке на сервер. Длина (в байтах) блоба хранится отдельно и именно ее скорее всего возвращает функция length в MySQL и mysql_fetch_lengths() в PHP.
__________________
Nunc est bibendum
is_absent вне форума  
Старый 02.04.2004, 17:16     # 9
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Я тоже думаю что запросы эквивалентны, только если данные из таблицы уже выбраны и есть ресурс на эту таблицу, эта функция, должна быстрее намного работать, т.к. не производит новых запросов к БД, а только извлекает информацию...

Если же просто нужно получить информацию о том что хранится в базе без ее извлечения то, наверное лучше length().
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 03.04.2004, 14:59     # 10
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
Hubbitus
согласен
Правде еще можно выбирать вместе с данными и их длину....
__________________
Nunc est bibendum
is_absent вне форума  
Старый 03.04.2004, 16:23     # 11
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
@_is_absent:Правде еще можно выбирать вместе с данными и их длину....
Насколько я понимаю, mysql_fetch_lengths() именно так и делает автоматически....

Хотя конечно можно и явно указать это в запросе.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 03.04.2004, 16:34     # 12
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
Дайте пример кода...
вот я вытаскиваю конкретную картинку из BLOP
в переменную.. как определить размер этой картинки (размер занимаемой ей памяти)
shuron вне форума  
Старый 03.04.2004, 16:58     # 13
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
А, ну если уже вытащена, то можно просто в PHP использовать strlen($вытащенная_переменная)...

Или так например:
Код:
$result=mysql_query("select image from table where .....");
list($img)=mysql_fetch_row($result); //Сама картинка предположим
list($img_size)=mysql_fetch_lengths(;куыгде);//Будет именно размер полученной картинки.
Также, о чем и @_is_absent говорит, можно так:
Код:
$result=mysql_query("select image, length(image) from table where .....");
list($img, $img_size)=mysql_fetch_row($result);
IMHO наиболее правильными являются последние 2 варианта.
И если необходимо получить только размер хранящейся картинки, без ее получения, то однозначно лучше последний вариант (тут я полностью согласен с @_is_absent)
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 14.05.2004, 23:21     # 14
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
спасибо обоим!!!
shuron вне форума  
Старый 10.04.2005, 01:30     # 15
Perfilev
Junior Member
 
Регистрация: 28.12.2002
Сообщения: 178

Perfilev Известность не заставит себя ждать
Exclamation

Возник вопрос:
в базе (mysql) лежат несколько записей пользователя
как узнать, сколько места в байтах они занимают?
Код:
    $result=mysql_query("SELECT length(page_content) FROM pages WHERE page_userid=1");
    $r=mysql_fetch_row($result);
    echo $r[0];
так не получается - выдаёт размер только одной записи и то не уверен, что 1 символ = 1 байт
Подскажите, плз.
Perfilev вне форума  
Старый 10.04.2005, 02:27     # 16
BorLase
::VIP::
 
Аватар для BorLase
 
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150

BorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех Гуру
Элементарно, Ватсон...

SELECT sum(length(page_content)) FROM pages WHERE page_userid=1
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people.
BorLase вне форума  
Старый 10.04.2005, 09:21     # 17
Perfilev
Junior Member
 
Регистрация: 28.12.2002
Сообщения: 178

Perfilev Известность не заставит себя ждать
Ладно, с этим разобрались. Спасибо.
А как же насчёт размера, занимаемом на диске? 1 символ = 1 байт?
Perfilev вне форума  
Старый 10.04.2005, 20:15     # 18
mackuler
Guest
 
Сообщения: n/a

Andy1
место, занимаемое на диске зависит от типа поля. varchar занимает (кол-во символов в текущей ячейке + 1) байт, а text, например, занимает 64 кб независимо от длины сообщения в этой ячейке.

update: сорри, соврал. textы и blobы как и varchar требуют памяти в соответствии с длиной содержимого..

Последний раз редактировалось mackuler; 12.04.2005 в 17:53.
 
Старый 11.04.2005, 02:11     # 19
BorLase
::VIP::
 
Аватар для BorLase
 
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150

BorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех Гуру
на 100% утверждать не буду (не уверен, что майскл с чем-то не путаю) - но если БД в юникоде - может различаться в разы - один символ 2 байта
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people.
BorLase вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 22:43.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.