Почему для таблицы поиска принудительно назначается ключ для левого соединения в kdb - PullRequest
1 голос
/ 31 марта 2020
  1. Каковы преимущества сохранения таблицы поиска в качестве ключа для левого соединения в kdb? Обеспечивает ли она преимущества в производительности / выигрыши в памяти и как?
    Как показано в таблице ниже:
    t:([]sym:6?`GOOG`AMZN`IBM`AAPL; px:6?10.) /- source table

    kt:([sym:`IBM`AAPL`GOOG`AMZN]; vol:4?10000) /- lookup table

    t lj kt
Те же преимущества применимы и к объединению asof, потому что я прочитал в Q для смертных "Не требуется, чтобы какой-либо из столбцов объединения был ключом, но соединение будет быстрее по ключам."

1 Ответ

2 голосов
/ 31 марта 2020

A таблица с ключами - это словарь, отображающий записи с ключами в таблицы значений. Следовательно, соединение с таблицей с ключами - это поиск по словарю, который по своей природе быстрее в kdb. Соответствующие столбцы используются для простого индексирования во второй таблице.

...