Что такое 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 внутри браузера.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти