Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.11.14;
Скачать: CL | DM;

Вниз

К вопросу о хранении содержимого файлов в базе.   Найти похожие ветки 

 
Дмитрий С ©   (2010-08-03 11:22) [0]

Общего мнения, как я понял нет. Каждый решает для себя.
В качестве эксперимента на своем сайте я реализовал данную функцию. В базе хранятся pdf/doc/... документы, которые могут достигать больших размеров, чем отведено памяти PHP скрипту. Т.е. дать скачать такой файл, а еще и скорость ограничить проблематично, но возможно делением содержимого на части (mysql):
SELECT SUBSTR(`contents`, :start + 1, :length) FROM `file` WHERE `id`=:id

Вопрос 1: Оптимизирует как-нибудь mysql (либо другая СУБД) такой запрос: не загружает полностью поле `contents` в свою память, а только часть?

Вопрос 2: А как пофрагментно внести содержимое в поле базы?


 
Игорь Шевченко ©   (2010-08-03 11:41) [1]


> Общего мнения, как я понял нет


есть - не хранить


 
stas ©   (2010-08-03 15:01) [2]

1. загружает все.
2.MySql незнаю Вроде как в mssql можно вкачать и выкачать по частям.


 
stas ©   (2010-08-03 15:09) [3]

1. хотя возможно и нет ) может прямо с диска читает.


 
12 ©   (2010-08-03 15:11) [4]

update table
set blob = blob + data
where id = X
?


 
antonn ©   (2010-08-03 16:16) [5]


> которые могут достигать больших размеров, чем отведено памяти
> PHP скрипту. Т.е. дать скачать такой файл, а еще и скорость
> ограничить проблематично, но возможно делением содержимого
> на части (mysql):

А не надо делать readfile() на страницу для скачивания.
Проблема надумана


 
Mystic ©   (2010-08-03 16:27) [6]

Хранить в базе это дополнительный геморрой. Плюс обрабатывать ручками много того, что автоматически делает WebServer: IfModify, Content Range, ...


 
Дмитрий С ©   (2010-08-03 16:46) [7]


> Mystic ©   (03.08.10 16:27) [6]

тоже согласен.


> antonn ©   (03.08.10 16:16) [5]
>
>

А как сделать?


 
antonn ©   (2010-08-03 17:21) [8]


> А как сделать?
>

да как и в дельфи, fopen()/fseek()/fread(), и обрабатывать код 206 для докачки.
Вообще уже давно есть классы типа class.httpdownload.php


 
Димка На   (2010-08-04 00:57) [9]

Это понятно, только не подходит для случая с базой: когда содержимое файла лежит в базе.



Страницы: 1 вся ветка

Текущий архив: 2010.11.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.005 c
15-1280750143
Кеша
2010-08-02 15:55
2010.11.14
Оплата услуг посредством смс


4-1241429837
Zalum
2009-05-04 13:37
2010.11.14
Обмен данными между приложениями


15-1280521768
Юрий
2010-07-31 00:29
2010.11.14
С днем рождения ! 31 июля 2010 суббота


2-1282687644
Просто Я
2010-08-25 02:07
2010.11.14
Так что ж такое Лейбл


2-1282162174
Kinnermann
2010-08-19 00:09
2010.11.14
Отслеживание изменения экрана