#mysql #database #clickhouse
#mysql #База данных #кликхаус
Вопрос:
В моей работе таблицы фактов хранятся в ClickHouse, таблицы измерений хранятся в базе данных MySQL, поэтому MySQL database Engine используется для подключения ClickHouse и базы данных MySQL. Из журнала выполнения ClickHouse SQL я могу найти, что ClickHouse будет извлекать необходимые данные из базы данных MySQL и выполнять агрегирование. Мой вопрос в том, в каком режиме ClickHouse получает данные из базы данных MySQL? является ли right ClickHouse получить все данные, необходимые в запросе, а затем выполнить агрегирование или выполнить эти два действия одновременно? Как я могу улучшить производительность SQL, используемого в этой сцене? Есть ли какие-нибудь практические навыки?
Ответ №1:
Внешние словари загружают данные (т.Е. из Mysql) и кэшируют эти данные в памяти сервера CH. Внешние словари (dictGet) быстрее, чем выбирает из движка Mysql на неопределенное количество раз.
https://clickhouse.tech/docs/en/sql-reference/statements/create/dictionary/