Я согласен с Archimedix ... Вместо того, чтобы помещать их в MySQL как BLOB, вы можете сохранить файл на диске и сохранить его путь в MYSQL как поле TEXT.Таким образом, ваше время поиска будет низким.Если вы заботитесь о свободном месте, вы можете заархивировать документ и сохранить его на диске, а по запросу распаковать и отправить его.
ОБНОВЛЕНИЕ
Из вашего кода видно, чтоу вас уже есть дескриптор файла, и вы можете сохранить его на сервере.Теперь, чтобы сэкономить место, вы можете заархивировать его, используя утилиту java zip по умолчанию.Вы можете столкнуться с проблемой, когда два человека загружают два разных файла с одинаковыми именами.Чтобы избежать подобных сценариев, вы можете либо переименовать ваш заархивированный документ с помощью uuid (используйте класс java 6 uuid), либо сгенерировать SHA1 для этого файла и использовать его для имени.
Теперь вы можете использовать абсолютный путьархивный (и переименованный файл) для хранения в MySQL.
Вместо схемы таблицы
ресурсы
- UserID [varchar (15)]
- Документ [mediumblob]
Вы можете использовать это
ресурсов
- UserID [varchar(15)]
- Документ [varchar (512)]
Итак, для такого запроса: Выберите документ из таблицы Документы, ГДЕ UserID = 'abcd';
теперь вы получите абсолютный путь к архивному файлу.Распакуйте этот файл и отправьте его.