본문으로 건너뛰기

클래스: BasicIndex<TKey>

정의 위치: packages/db/src/indexes/basic-index.ts:43

Map + 정렬된 Array를 사용하는 기본 인덱스입니다.

  • O(1) 동등성 조회를 위한 Map
  • 이진 검색을 통한 O(log n) 범위 쿼리를 위한 정렬된 Array
  • 정렬 순서를 유지하기 위한 O(n) 업데이트

BTreeIndex보다 단순하고 작으며 읽기 중심 워크로드에 적합합니다. 컬렉션이 크고 쓰기 중심인 워크로드에는 BTreeIndex를 사용합니다.

상속​

타입 매개변수​

TKey​

TKey 확장 string | number = string | number

생성자​

생성자​

new BasicIndex<TKey>(
id,
expression,
name?,
options?): BasicIndex<TKey>;

정의 위치: packages/db/src/indexes/basic-index.ts:64

매개변수​

id​

number

expression​

BasicExpression

name?​

string

options?​

any

반환값​

BasicIndex&lt;TKey>

재정의된 메서드​

BaseIndex.constructor

속성​

compareOptions​

protected compareOptions: CompareOptions;

정의 위치: packages/db/src/indexes/base-index.ts:102

상속받은 속성​

BaseIndex.compareOptions


expression​

readonly expression: BasicExpression;

정의 위치: packages/db/src/indexes/base-index.ts:96

상속받은 속성​

BaseIndex.expression


hasCustomComparator​

protected hasCustomComparator: boolean = false;

정의 위치: packages/db/src/indexes/base-index.ts:108

사용자 제공 비교 함수로 생성될 때 서브클래스에서 설정되며, 이 비교 함수의 정렬 순서는 WHERE 평가기의 관계 연산자와 일치하지 않을 수 있습니다.

상속받은 속성​

BaseIndex.hasCustomComparator


id​

readonly id: number;

정의 위치: packages/db/src/indexes/base-index.ts:94

상속받은 속성​

BaseIndex.id


lastUpdated​

protected lastUpdated: Date;

정의 위치: packages/db/src/indexes/base-index.ts:101

상속받은 속성​

BaseIndex.lastUpdated


lookupCount​

protected lookupCount: number = 0;

정의 위치: packages/db/src/indexes/base-index.ts:99

상속받은 속성​

BaseIndex.lookupCount


name?​

readonly optional name: string;

정의 위치: packages/db/src/indexes/base-index.ts:95

상속받은 속성​

BaseIndex.name


supportedOperations​

readonly supportedOperations: Set<"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike">;

정의 위치: packages/db/src/indexes/basic-index.ts:46

재정의된 메서드​

BaseIndex.supportedOperations


totalLookupTime​

protected totalLookupTime: number = 0;

정의 위치: packages/db/src/indexes/base-index.ts:100

상속받은 속성​

BaseIndex.totalLookupTime

접근자​

indexedKeysSet​

가져오기 시그니처​

get indexedKeysSet(): Set<TKey>;

정의 위치: packages/db/src/indexes/basic-index.ts:519

반환값​

Set&lt;TKey>

재정의된 메서드​

BaseIndex.indexedKeysSet


keyCount​

가져오기 시그니처​

get keyCount(): number;

정의 위치: packages/db/src/indexes/basic-index.ts:273

인덱싱된 키의 수를 가져옵니다.

반환값​

number

재정의된 메서드​

BaseIndex.keyCount


orderedEntriesArray​

가져오기 시그니처​

get orderedEntriesArray(): [any, Set<TKey>][];

정의 위치: packages/db/src/indexes/basic-index.ts:523

반환값​

[any, Set&lt;TKey>][]

재정의된 메서드​

BaseIndex.orderedEntriesArray


orderedEntriesArrayReversed​

가져오기 시그니처​

get orderedEntriesArrayReversed(): [any, Set<TKey>][];

정의 위치: packages/db/src/indexes/basic-index.ts:530

반환값​

[any, Set&lt;TKey>][]

재정의된 메서드​

BaseIndex.orderedEntriesArrayReversed


supportsRangeOptimization​

가져오기 시그니처​

get supportsRangeOptimization(): boolean;

정의 위치: packages/db/src/indexes/base-index.ts:163

이 인덱스의 범위 조회(gt/gte/lt/lte)가 일치하는 모든 키를 반환한다고 신뢰할 수 있는지 여부입니다. 범위 순회는 인덱스 순서에 의존하므로, 사용자 지정 비교 함수를 사용하는 인덱스에서는 안전하지 않습니다. 사용자 지정 비교 함수의 순서가 WHERE 평가기의 관계 연산자와 일치하지 않을 수 있기 때문입니다. 이 값이 false인 경우 호출자는 전체 스캔으로 대체해야 합니다.

반환값​

boolean

상속받은 속성​

BaseIndex.supportsRangeOptimization


valueMapData​

가져오기 시그니처​

get valueMapData(): Map<any, Set<TKey>>;

정의 위치: packages/db/src/indexes/basic-index.ts:539

반환값​

Map&lt;any, Set&lt;TKey>>

재정의된 메서드​

BaseIndex.valueMapData

메서드​

add()​

add(key, item): void;

정의 위치: packages/db/src/indexes/basic-index.ts:83

인덱스에 값을 추가합니다.

매개변수​

key​

TKey

item​

any

반환값​

void

재정의된 메서드​

BaseIndex.add


build()​

build(entries): void;

정의 위치: packages/db/src/indexes/basic-index.ts:191

항목 컬렉션에서 인덱스를 빌드합니다.

매개변수​

entries​

Iterable&lt;[TKey, any]>

반환값​

void

재정의된 메서드​

BaseIndex.build


clear()​

clear(): void;

정의 위치: packages/db/src/indexes/basic-index.ts:228

인덱스에서 모든 데이터를 지웁니다.

반환값​

void

재정의된 메서드​

BaseIndex.clear


equalityLookup()​

equalityLookup(value): Set<TKey>;

정의 위치: packages/db/src/indexes/basic-index.ts:280

동등성 조회를 수행합니다 - O(1)

매개변수​

value​

any

반환값​

Set&lt;TKey>

재정의된 메서드​

BaseIndex.equalityLookup


evaluateIndexExpression()​

protected evaluateIndexExpression(item): any;

정의 위치: packages/db/src/indexes/base-index.ts:214

매개변수​

item​

any

반환값​

any

상속받은 속성​

BaseIndex.evaluateIndexExpression


getStats()​

getStats(): IndexStats;

정의 위치: packages/db/src/indexes/base-index.ts:202

반환값​

IndexStats

상속받은 속성​

BaseIndex.getStats


inArrayLookup()​

inArrayLookup(values): Set<TKey>;

정의 위치: packages/db/src/indexes/basic-index.ts:504

IN 배열 조회를 수행합니다 - k는 values.length입니다 - O(k)

매개변수​

values​

any[]

반환값​

Set&lt;TKey>

재정의된 메서드​

BaseIndex.inArrayLookup


initialize()​

protected initialize(_options?): void;

정의 위치: packages/db/src/indexes/basic-index.ts:78

매개변수​

_options?​

BasicIndexOptions

반환값​

void

재정의된 메서드​

BaseIndex.initialize


lookup()​

lookup(operation, value): Set<TKey>;

정의 위치: packages/db/src/indexes/basic-index.ts:238

조회 작업을 수행합니다

매개변수​

operation​

"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike"

value​

any

반환값​

Set&lt;TKey>

재정의된 메서드​

BaseIndex.lookup


matchesCompareOptions()​

matchesCompareOptions(compareOptions): boolean;

정의 위치: packages/db/src/indexes/base-index.ts:179

비교 옵션이 인덱스의 비교 옵션과 일치하는지 확인합니다. 인덱스는 방향이 다르면 반전할 수 있으므로 방향은 무시됩니다.

매개변수​

compareOptions​

CompareOptions

반환값​

boolean

상속받은 속성​

BaseIndex.matchesCompareOptions


matchesDirection()​

matchesDirection(direction): boolean;

정의 위치: packages/db/src/indexes/base-index.ts:198

인덱스가 제공된 방향과 일치하는지 확인합니다.

매개변수​

direction​

OrderByDirection

반환값​

boolean

상속받은 속성​

BaseIndex.matchesDirection


matchesField()​

matchesField(fieldPath): boolean;

정의 위치: packages/db/src/indexes/base-index.ts:167

매개변수​

fieldPath​

string[]

반환값​

boolean

상속받은 속성​

BaseIndex.matchesField


rangeQuery()​

rangeQuery(options): Set<TKey>;

정의 위치: packages/db/src/indexes/basic-index.ts:288

이진 검색을 사용하여 범위 쿼리를 수행합니다 - O(log n + m)

매개변수​

options​

RangeQueryOptions = {}

반환값​

Set&lt;TKey>

재정의된 메서드​

BaseIndex.rangeQuery


rangeQueryReversed()​

rangeQueryReversed(options): Set<TKey>;

정의 위치: packages/db/src/indexes/basic-index.ts:349

반전된 범위 쿼리를 수행합니다

매개변수​

options​

RangeQueryOptions = {}

반환값​

Set&lt;TKey>

재정의된 메서드​

BaseIndex.rangeQueryReversed


remove()​

remove(key, item): void;

정의 위치: packages/db/src/indexes/basic-index.ts:124

인덱스에서 값을 제거합니다

매개변수​

key​

TKey

item​

any

반환값​

void

재정의된 메서드​

BaseIndex.remove


supports()​

supports(operation): boolean;

정의 위치: packages/db/src/indexes/base-index.ts:159

매개변수​

operation​

"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike"

반환값​

boolean

상속받은 속성​

BaseIndex.supports


take()​

take(
n,
from?,
filterFn?): TKey[];

정의 위치: packages/db/src/indexes/basic-index.ts:374

정렬된 순서로 다음 n개 항목을 반환합니다

매개변수​

n​

number

from?​

any

filterFn?​

(key) => boolean

반환값​

TKey[]

재정의된 메서드​

BaseIndex.take


takeFromStart()​

takeFromStart(n, filterFn?): TKey[];

정의 위치: packages/db/src/indexes/basic-index.ts:459

정렬된 순서로 처음 n개 항목을 반환합니다(시작부터)

매개변수​

n​

number

filterFn?​

(key) => boolean

반환값​

TKey[]

재정의된 메서드​

BaseIndex.takeFromStart


takeReversed()​

takeReversed(
n,
from?,
filterFn?): TKey[];

정의 위치: packages/db/src/indexes/basic-index.ts:416

역순으로 정렬된 다음 n개 항목을 반환합니다

매개변수​

n​

number

from?​

any

filterFn?​

(key) => boolean

반환값​

TKey[]

재정의된 메서드​

BaseIndex.takeReversed


takeReversedFromEnd()​

takeReversedFromEnd(n, filterFn?): TKey[];

정의 위치: packages/db/src/indexes/basic-index.ts:478

역순으로 정렬된 처음 n개 항목을 반환합니다(끝부터)

매개변수​

n​

number

filterFn?​

(key) => boolean

반환값​

TKey[]

재정의된 메서드​

BaseIndex.takeReversedFromEnd


trackLookup()​

protected trackLookup(startTime): void;

정의 위치: packages/db/src/indexes/base-index.ts:220

매개변수​

startTime​

number

반환값​

void

상속받은 속성​

BaseIndex.trackLookup


update()​

update(
key,
oldItem,
newItem): void;

정의 위치: packages/db/src/indexes/basic-index.ts:162

인덱스의 값을 업데이트합니다

매개변수​

key​

TKey

oldItem​

any

newItem​

any

반환값​

void

재정의된 메서드​

BaseIndex.update


updateTimestamp()​

protected updateTimestamp(): void;

정의 위치: packages/db/src/indexes/base-index.ts:226

반환값​

void

상속받은 속성​

BaseIndex.updateTimestamp