Главная страница
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.009 c
15-1280992834
Polkin
2010-08-05 11:20
2010.11.14
MySQL Server has gone away


15-1280731176
nod32
2010-08-02 10:39
2010.11.14
создание самопального сервера обновлений nod32


15-1280953799
Юрий
2010-08-05 00:29
2010.11.14
С днем рождения ! 5 августа 2010 четверг


2-1282442149
Гость
2010-08-22 05:55
2010.11.14
Можно ли сделать, чтоб при нажатии Alt, не включалось меню?


10-1169756215
Asail
2007-01-25 23:16
2010.11.14
Неполный список книг в Excel 2003