Выборка данных по WHERE-выражениям
Любая операция базируется на выборке нужных записей. Любая выборка выполняется в соответствии с WHERE-выражением. WHERE-выражение - это строка, как в SQL.
Верное WHERE-выражение может содержать скобки, ключевые слова 'and' и 'or', арифметические и логические операции, имена полей и числовые и строковые константы. Функции не допускаются. Лишние скобки тоже.
Парсер превращает WHERE-выражение в дерево объектов условий в несколько шагов:
Верное выражение полей может содержать скобки, арифметические операции, имена полей одной таблицы и числовые и строковые константы. Функции не допускаются.
При обработке WHERE-выражения XBSDB создаёт начальное множество, содержащее все записи.
Затем XBSDB уменьшает это множество по каждому OR- и AND-выражению в дереве:
Есть оптимизация - проверка на пустое множество и тд.
Наконец, XBSDB возвращает уменьшенное начальное множество записей как результат.
Индексы
Индексы могут быть построены по любому верному выражению полей. Индексы могут повысить скорость выборки, а могут и нет - зависит от клиентского движка JavaScript. В некоторых случаях они делают операцию выборки быстрее до 7 раз. Конечно, каждый индекс делает операции вставки и замены медленнее.
Любая операция базируется на выборке нужных записей. Любая выборка выполняется в соответствии с WHERE-выражением. WHERE-выражение - это строка, как в SQL.
Верное WHERE-выражение может содержать скобки, ключевые слова 'and' и 'or', арифметические и логические операции, имена полей и числовые и строковые константы. Функции не допускаются. Лишние скобки тоже.
Парсер превращает WHERE-выражение в дерево объектов условий в несколько шагов:
- по скобкам на вложенные уровни и на OR-выражения,
- каждое OR-выражение по операциям OR на AND-выражения,
- каждое AND-выражение по операциям AND на логические выражения,
- каждое логическое выражение по операциям =,<,>,<=,>=,!= на выражение полей, логическую операцию и выражение констант,
- каждое выражение по скобкам на выражения того же типа,
- каждое выражение по арифметическим операциям на поля и константы.
Верное выражение полей может содержать скобки, арифметические операции, имена полей одной таблицы и числовые и строковые константы. Функции не допускаются.
При обработке WHERE-выражения XBSDB создаёт начальное множество, содержащее все записи.
Затем XBSDB уменьшает это множество по каждому OR- и AND-выражению в дереве:
- Члены OR-выражения получают родительское множество записей и объединяют результаты,
- Члены AND-выражения получают предыдущий результат и пересекают со своим.
Есть оптимизация - проверка на пустое множество и тд.
Наконец, XBSDB возвращает уменьшенное начальное множество записей как результат.
Индексы
Индексы могут быть построены по любому верному выражению полей. Индексы могут повысить скорость выборки, а могут и нет - зависит от клиентского движка JavaScript. В некоторых случаях они делают операцию выборки быстрее до 7 раз. Конечно, каждый индекс делает операции вставки и замены медленнее.