2016-11-19 4 views
0

私はQuoraの中で、次の質問を通過した最初の答えはここに「Vitess」という名前のソフトウェアについて言及書き換えクエリとデータ層

https://www.quora.com/How-was-YouTube-programmed-in-Python

。それはvitessがクエリを書き換え、最適化を提供することを言いました。 データベーストランザクションの最適化のためにクエリを書き換えることは、正確に何を意味しますか。私は、独自のカスタマイズされたRDBMSシステムとデータベースの操作を高速化するためのデータの階層化を持つソフトウェアはほとんど読んでいません。

クエリを書き直すことで、操作をより迅速に行う方法は何ですか? この質問の範囲を広げる恐れがあるので、私はデータレイヤーとクエリーの書き換えについてもっと知りたいときに、データとマテリアルのレイヤーに関するいくつかの洞察を求めます。

答えて

0

私はvitessで作業しています。

最適化が普遍的に実行可能であった場合、データベースエンジンはそれ自体を実行します。

Vitessが実行する最適化のタイプは、今日のアプリケーションで実行可能なトレードオフです。例:

  • OLTPワークロードの場合、Vitessはクエリに制限節を追加します。行数が一定量を超えると、エラーが返されます。
  • クエリが完了するまでに時間がかかりすぎると、他のクエリに害を及ぼす可能性が最も高くなります。システムを稼働させ続けるために、このようなクエリを削除します。
  • DMLを主キーベースに書き換えます。この方法では、レプリカは元の作業をやり直す必要はありません。これは、ステートメントベースのレプリケーションを使用している場合に適用されます。
  • 2つの同一のクエリがシステムにヒットした場合は、1つだけを送信して結果を共有します。

これらはほんの一部のハイライトです。 YouTubeでは、YouTubeで見られた問題や停電に基づいて、さらに多くのチューニングオプションを追加しました。