Nano Hash - криптовалюты, майнинг, программирование

проблема с производительностью при сохранении/извлечении большого двоичного объекта из базы данных оракула с использованием Java

Я сохраняю огромный двоичный объект (500 МБ) в базу данных оракула, используя JDBC. Требуется много времени на вставку и последующее извлечение.

Посоветуйте, если кто-то из вас сталкивался с этой проблемой.

12.06.2011

  • Конечно, для вставки и извлечения BLOB потребуется много времени. В конце концов, это 500 МБ. Возможно, вы захотите указать, сколько времени это занимает и почему это не должно занимать так много времени. Тогда, возможно, кто-нибудь сможет вам помочь. 12.06.2011
  • одним из решений было бы не вставлять и не извлекать такие большие BLOB-объекты. 12.06.2011
  • или сжать данные, возможно. Но все такие ответы самонадеянны. 12.06.2011
  • Сколько времени занимает сохранение BLOB в базе данных? Сколько времени занимает перемещение файла размером 500 МБ с веб-сервера на сервер базы данных? 12.06.2011

Ответы:


1

Многие люди, не работающие с базами данных, действительно боятся вставлять BLOB и CLOB в базы данных. Их не должно быть. Oracle очень хорошо с ними справляется. Также имейте в виду, что Oracle также разрабатывает файловые системы (включая BTRFS), поэтому знайте о хранении всех видов данных. Данные в базе данных могут быть лучше защищены от сбоев носителя или системы, защищены от несанкционированного доступа и проверены на предмет ненадлежащего использования.

Вы должны использовать 11g и SecureFile LOBS. Этот документ по производительности SecureFile содержит рекомендации по достижению хорошо или лучше, чем обычное хранилище файловой системы.

Конечно, сначала стоит проверить, что является узким местом. Если это сеть между сервером приложений и сервером БД, то никакая настройка базы данных не обойдет проблему.

12.06.2011

2

Блоб размером 500 МБ? Боже мой.

Слушай, серьезно, ответ таков: не делай этого! Реляционные базы данных не предназначены для этого и не оптимизированы для этого; то, как таблицы и файловая система должны быть организованы для индексации и поиска, не подходит для такого большого неудобоваримого куска.

Вместо этого рассмотрите возможность создания отдельной файловой системы для этих больших кусков и сохранения пути в базе данных.

12.06.2011
  • Я согласен с этим в принципе. Однако с этим подходом есть только одна проблема: доступ к большому двоичному объекту больше не является транзакционной деятельностью. Если ОП согласен с этим, он должен подумать об этом. 12.06.2011
  • @Vineet ... это вырвано из контекста, я знаю, что OP относится к человеку, задающему вопрос, но что это на самом деле означает? 12.06.2011
  • @Bagmita, ОП = Оригинальный постер. 12.06.2011
  • @Vineet Я действительно очень сомневаюсь, что Oracle может поддерживать целостность транзакций в большом двоичном объекте размером 500 МБ. Но вы можете, используя JDBC, запустить единицу работы, выполнить свой BAB (большой блоб), обновить свой путь и завершить UOW. Вы должны иметь дело с обработкой ошибок во время BAB, но БД может обрабатывать целостность. 12.06.2011
  • Конечно, Oracle может поддерживать целостность транзакций с BLOB размером 500 МБ. Это просто данные. Базы данных ДЕЙСТВИТЕЛЬНО хороши в обработке данных. 13.06.2011
  • Чувак, я создаю петабайтные системы хранения, оптимизированные для баз данных. Подумайте о том, что вы говорите: Oracle может вести журнал и откатывать или откатывать BLOB-объект размером 500 МБ. Базы данных действительно хорошо хранят строки, но вы говорите о сохранении целостности при записи полмиллиона блоков. 14.06.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..