Индексирование всех столбцов, которые являются внешним ключом для таблицы

Swift 4,

Я создал простую перечисление со связанными значениями для обработки опорных путей базы данных базы данных firebase

import Firebase

    enum FirebaseDBConstants  {

        case UserLocation(database : DatabaseReference, userID :String)
        case UserRequest(database : DatabaseReference, requestID :String)

        func getDBPath() -> DatabaseReference {
            switch self {
            case  .UserLocation(let database,let userID):
                return database.root.child(FirebaseDBEnvironmentEnum.getCurrentEnvioronMent()).child("Location").child(userID).child("JSON")

            case .UserRequest(let database,let requestID):
                return database.root.child(FirebaseDBEnvironmentEnum.getCurrentEnvioronMent()).child("Request").child(requestID)

            default:
                break
            }
        }
    }

Используйте ее, как показано на рисунке

//Pass Database refenence root as parameter with your request id
let dbPath = FirebaseDBConstants.UserRequest(database: database, requestID: requestId).getDBPath()
0
задан a_horse_with_no_name 13 July 2018 в 13:16
поделиться

1 ответ

В вашем описании представлены четыре индекса:

  • top_id, idn_id
  • top_id, rsc_id или rcs_id, top_id
  • top_id, act_id или act_id, top_id
  • top_id, tup_id или tup_id, top_id

Это независимо от базы данных. Oracle реализует что-то, называемое «skip-scan» для индексов. Это позволит вам уменьшить количество индексов.

Действительно ли эти индексы действительно нужны, действительно зависит от того, насколько избирателен top_id. Если имеется только несколько совпадений, тогда необязательный ключ с индексом в секунду может не понадобиться.

2
ответ дан Gordon Linoff 17 August 2018 в 12:59
поделиться
  • 1
    из миллиона итоговых записей, каждый top_id будет иметь 10 000 макс записей – Shashank V C 13 July 2018 в 12:07
  • 2
    @ShashankVC. , , Это справедливая сумма, если вам нужна действительно быстрая производительность для всех этих запросов. С другой стороны, четыре индекса добавляют служебные данные для операций модификации данных. – Gordon Linoff 13 July 2018 в 12:18
  • 3
    Итак, вы говорите, что лучше добавить 5 индексов или индекса на top_id будет достаточно? – Shashank V C 13 July 2018 в 12:30
  • 4
    – Gordon Linoff 13 July 2018 в 12:33
Другие вопросы по тегам:

Похожие вопросы: