Что такое IndexedDB? Давайте разберемся в этом вопросе. 

Первое, что нужно понимать - это то, что IndexedDB - это просто база данных, которая встроена в некоторые браузеры, в первую очередь это браузер Google Chrome. Но, в других браузера тоже есть аналоги такой базы данных.

IndexedDB - это noSQL база данных. Мы не можем выполнять SQL запросы к этой базе данных. Делать какие-то выборки с помощью запросов SQL синтаксиса. Общаться с этой базой данных можно с помощью так называемого API интерфейса, который есть у этой базы данных.

Взаимодействие осуществляется через выполнение определенных команд. Добавлять туда что-то, удалять или обновлять. IndexedDB - это объектно-ориентированная база данных. Это очень похоже на документо-ориентированные базы данных. 

Подробнее посмотреть о том, что это такое можно здесь:

https://webkyrs.info/page/dokumento-orientirovannye-bazy-dannykh

В таких базах данных информация храниться в виде документов. Документы представлены в виде объектов. Объекты - обычные JSON объекты. С которыми мы можем как-то взаимодействовать.

Объекты - это обычные JSON объекты, которые содержат информацию в виде ключа + значение. 

Объекты могут иметь сложную вложенную структуру. 

Если у нас храниться там такая информация, в такой базе данных не может быть relation (связей) - это не реляционная база данных. Здесь также нет таблиц, которые есть в реляционных базах данных. Таких как MySQL, PostgreSQL и.т.д.

Здесь есть только объекты, с которыми мы можем взаимодействовать.

В IndexedDB можно хранить строки, числа, даты, объекты и даже файлы. 

В IndexedDB достаточно высокая скорость обработки данных. Эта скорость значительно выше чем у тех же самых реляционных баз данных. 

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

Но, есть у этой базы данных и недостатки. Одним из таких недостатков в том, что данные хранятся на стороне клиента. Т.е. данные хранятся в том браузере, в котором вы работаете. 

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

Соответственно, сфера применения таких баз данных несколько ограничена и, как правило, применяется для development разработки. Т.е. если вы не собираетесь публиковать свое приложение в production т.е. на каком-то сервере, чтобы он был доступен в Интернет, то для среды разработки вы можете вполне использовать эту базу данных.

Т.е. быстро создать какое-то приложение, которое будет работать у вас в браузере. 

Еще одна сфера применения - это разработка расширений для браузера. 

См. видео выше, чтобы посмотреть как получить доступ к IndexedDB внутри браузера.