4

Railsアプリケーションでrack-mini-profilerを使用していますが、ページをロードすると、次のような奇妙なクエリが表示されることがあります:

SHOW FULL FIELDS FROM `tablename`
SHOW TABLES LIKE 'tablename'
SHOW CREATE TABLE `tablename`

彼らは、クエリは、リクエストを処理するコントローラーから、ある行から来ていると言います

@model = Model.first()

これらのクエリは、連続するページの読み込みでは実行されません。

Rails がこれらの奇妙なクエリを生成するのはなぜですか?

4

1 に答える 1

5

ActiveRecord クラスの実装で "id" や "name" などを明示的に定義する必要がないように、Rails は慣例によりデータベースのフィールドをモデルのプロパティに自動的にマップすることをご存知でしょう。

ActiveRecord モデルが適切なプロパティを生成するために、Rails はデータベース スキーマを調査する必要があります。Mysql は、スキーマを検査するために上記のコマンドをサポートしています。

ただし、ActiveRecord は、アプリケーションの実行中にスキーマが変更されないことを前提としているため、後続のリクエストでこれらの質問をする必要はありません。

于 2012-08-16T00:57:44.633 に答える