3

私はこの記事を読んでいました: http://www.ajaxline.com/32-tips-to-speed-up-your-mysql-queries

ポイント#4で、次のように述べています:

GRANT ステートメントを発行するときに単純なパーミッションを使用すると、MySQL は、クライアントがステートメントを実行するときのパーミッション チェックのオーバーヘッドを削減できます。

質問:

  1. これはパフォーマンスにどのように影響しますか?
  2. 「より単純な権限」とはどういう意味ですか? 例えば。すべての権限を持つ root ユーザーがいる場合。データベースのテーブルを作成または変更し、Web アプリケーションの「appDbUser」を使用する場合、前述のテキストで提案されている内容に準拠するために、appDbUser に SELECT、UPDATE、DELETE、INSERT 権限を付与するにはどうすればよいですか。
4

1 に答える 1

0

最も簡単な方法は、プロファイルを作成して自分の目で確かめることです。

-- enable profile gathering
SET PROFILING = 1;

SELECT <query involving complex set of column and table permissions>;

SHOW PROFILE

--or SHOW PROFILES, and then SHOW PROFILE FOR QUERY 2 etc

-- turn profiling back off again
SET PROFILING = 0;

これにより、実行中のクエリの各段階と期間を示す表が表示されます。かなり複雑な権限があっても、クエリの実行、並べ替え、グループ化に比べて時間はそれほど重要ではないことがわかるでしょう。

于 2012-06-20T18:08:48.030 に答える