indexedDB 資料庫 索引
本文將通過程式碼例項詳細介紹一下indexedDB資料庫索引相關知識。
與索引比較類似的是主鍵,具體內容可以參閱indexedDB 資料庫主鍵一章節。
一.索引的必要性:
主鍵可以唯一標識物件倉庫中的資料(不同物件倉庫中的資料主鍵可以重複)。
既然通過主鍵可以唯一確定檢索一條資料,那建立索引的意義何在,下面舉一個簡單例子。
資料庫中儲存有如下類似關於班級學生的資料記錄:
[JavaScript] 純文字檢視 複製程式碼{ webName:"張三", age:15, email:"ant@163.com", sex:"男" }
在儲存資料的時候,主鍵是自增長的,一共儲存了50個學生的資訊。
我們自然能夠通過主鍵獲取學生的資訊,但並不是在所有場景下都能表現完美。
比如需要按照學生的性別來檢索資訊,也就是利用資訊中的sex屬性進行檢索,此時索引的價值就會得到體現。
二.建立索引物件:
要使用索引,那麼就要首先要針對指定的屬性建立索引。
看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> let students=[ { id:1001, name:"張三", age:21, sex:"男" },{ id:1002, name:"李四", age:20, sex:"女" },{ id:1003, name:"王五", age:19, sex:"女" } ]; let request = window.indexedDB.open("antzone", 1); let indexOBJ; request.onupgradeneeded = (ev) => { let db = ev.target.result; if (!db.objectStoreNames.contains('website')) { let objectStore = db.createObjectStore('website',{autoIncrement:true}); objectStore.createIndex("xingbie","sex",{ unique: false }); objectStore.createIndex("xingming","name",{ unique: true }); } } request.onsuccess = (ev) => { let db = ev.target.result; let transaction = db.transaction(['website'], 'readwrite'); let objectStore = transaction.objectStore('website'); for(let i=0;i<students.length;i++){ objectStore.add(students[i]); } } </script> </head> <body> <p>為物件建立索引,並新增資料</p> </body> </html>
程式碼執行效果截圖如下:
程式碼分析如下:
(1).通過IDBObjectStore.createIndex()方法建立物件索引。
(2).方法第一個引數是索引名稱,第二個引數是索引所對應屬性,第三個規定索引對應屬性值是否可以重複。
關於索引和其周邊知識本文不再介紹,更多內容參閱下面的幾個文章:
(1).建立索引可以參閱IDBObjectStore.createIndex() 方法一章節。
(2).關於事務可以參閱indexedDB transaction 事務一章節。
(3).索引的應用可以參閱indexedDB 通過索引查詢資料一章節。
相關文章
- indexedDB 通過索引查詢資料Index索引
- indexedDB 資料庫版本Index資料庫
- IndexedDB 資料庫概述Index資料庫
- IndexedDB 資料庫用法Index資料庫
- IndexedDB 資料庫新增資料Index資料庫
- indexedDB 刪除資料庫Index資料庫
- indexedDB 資料庫主鍵Index資料庫
- indexedDB 修改索引Index索引
- indexedDB 刪除物件倉庫所有資料Index物件
- 瀏覽器資料庫 IndexedDB(一) 概述瀏覽器資料庫Index
- 資料庫索引資料庫索引
- localforage indexedDB如何使用索引Index索引
- 瀏覽器資料庫 IndexedDB 入門教程瀏覽器資料庫Index
- IndexedDB.open()開啟與新建資料庫Index資料庫
- IndexedDB.open() 開啟與新建資料庫Index資料庫
- indexedDB 更新資料Index
- indexedDB 新增資料Index
- 資料庫索引原理資料庫索引
- [資料庫]索引失效資料庫索引
- 【Mysql】資料庫索引,百萬資料測試索引效果MySql資料庫索引
- indexedDB 查詢資料Index
- indexedDB 遍歷資料Index
- indexedDB 刪除資料Index
- indexedDB 批量新增資料Index
- MySQL資料庫之索引MySql資料庫索引
- 概覽資料庫索引資料庫索引
- mysql資料庫的索引MySql資料庫索引
- 玩轉資料庫索引資料庫索引
- 資料庫索引層級資料庫索引
- 資料庫的部分索引資料庫索引
- 資料庫之建立索引資料庫索引
- 資料庫索引的工作原理資料庫索引
- MySQL資料庫索引簡介MySql資料庫索引
- 資料庫——對索引的理解資料庫索引
- 資料庫索引選擇策略資料庫索引
- mongodb資料庫如何建立索引?MongoDB資料庫索引
- 將資料庫中資料匯入至solr索引庫資料庫Solr索引
- indexedDB 索引與primarykey主鍵區別Index索引