問題タブ [database-engine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - データベース内のビデオ時間ごとのビデオ視聴統計の内訳を保持する
視聴されている動画に関する統計を多数保持する必要があります。そのうちの 1 つは、動画のどの部分が最も視聴されているかです。私が思いついた設計は、ビデオを 256 の間隔に分割し、それぞれのビューの浮動小数点数を保持することです。ユーザーが連続して見た間隔の数としてデータを受け取ります。問題は、それらをどのように保管するかです。私が見る2つの解決策があります。
動画セグメントごとの行
次のようなデータベーステーブルを用意しましょう。
次に、多数のビューを処理する必要があるときはいつでも、それぞれのデータベース行があることを確認し、適切な値を列に追加しviews
ます。SELECT COUNT(*)
行の存在が最初に処理されると(特定のビデオの行と行INSERT IGNORE
が不足している場合)、次のようにいくつかの更新クエリが使用されると、はるかに高速になることがわかりました。
ただし、これは少し膨らんでいるようです。私が思いついた他の解決策は
動画ごとに行、トランザクションで更新
テーブルは次のようになります。
次に、ビューを保存する必要があるたびに、次のような順序で、一貫性のあるスナップショットを使用してトランザクションで実行されます。
- ビデオがデータベースに存在しない場合は、作成されます。
- バイナリ形式で格納された float の配列である行が取得
heatmap
され、(PHP で) より処理しやすい形式に変換されます。 - 配列内の値が適切に増加され、配列が変換されます。
- 行は
UPDATE
クエリによって変更されます。
これまでのところ、利点は次のように要約できます。
最初のアプローチ
- データを魔法のバイナリ配列としてではなく、float として格納します。
- トランザクション サポートを必要としないため、InnoDB は必要ありません。また、現時点ではすべてに MyISAM を使用しているため、ストレージ エンジンを混在させる必要はありません。(私の特定の状況にのみ適用されます)
- トランザクションを必要としません
WITH CONSISTENT SNAPSHOT
。それらのパフォーマンスのペナルティが何であるかはわかりません。 - 私はすでにそれを実装しており、動作します。(私の特定の状況にのみ適用されます)
2 番目のアプローチ
- 使用するストレージ スペースが大幅に削減されます (最初のアプローチでは、ビデオ ID を 256 回保存し、ビデオのすべてのセグメントの位置を保存します。プライマリ キーは言うまでもありません)。
- MyISAM のテーブル ロックとは対照的に、InnoDB の行ごとのロックにより、より適切にスケーリングする必要があります。
- 行われるリクエストがはるかに少ないため、通常はより速く動作する可能性があります。
- コードで実装する方が簡単です(ただし、もう一方は既に実装されています)。
それで、私は何をすべきですか?MyISAM を一貫して使用するシステムの残りの部分がなければ、2 番目のアプローチを使用しますが、現在は最初のアプローチに傾いています。しかし、どちらかのアプローチを支持する理由がいくつかあるのではないでしょうか?
wcf - シングル ユーザー データベースとマルチユーザー データベース
シングル ユーザー データベースとマルチ ユーザー データベースの違いは何ですか? シングル ユーザー データベースを使用する必要があるのはなぜですか? なぜ作られたのですか?
複数のスレッドが同じログイン資格情報を使用して同じデータベースに同時にアクセスしている場合、複数のユーザー データベースが必要ですか?
sql-server-2012 - SQL Server SQL エージェント
SQL Server 2012 のインストールからいくつかのスクリプトをスケジュールしようとしています。http://www.microsoft.com/en-us/download/details.aspx?id=43351から SQLManagementStudio_x64_ENU.exe をインストールしました。これは完全なバージョンであり、高速ではありません。ただし、データベース エンジンはインストールされませんでした。戻って SQLEXPR_x64_ENU.exe データベース エンジンのみをインストールしましたが、SQL エージェント サービスを開始しようとすると、「このサービスをインストールした SQL Server のエディションは SQL Server エージェントをサポートしていません」というエラーが表示されます。
間違ったデータベース エンジンを使用しましたか? または、間違った順序でインストールしますか?
sql-server-2012 - 問題を示す SQLServer 2012 のインストール済みコピー:
私の問題は次のようなものです: 私のマシンに SqlServer 2012 のコピーがインストールされていました。3年以上使用していますが、特に不具合はありません。ちょうど 4 ~ 5 日前に、問題が発生しました。私がManagement Studioを始めたとき、それは私に言った
msdb が破損しているため、開くことができません。
完全なメッセージは次のようなものです。
ユーザーにアクセス許可がないため、サーバー レベルでポリシーの正常性状態を表示できません。この機能が正しく動作するには、データベース msdb へのアクセス許可が必要です。
では、ここで何が間違っているのでしょうか? これを不安定にしたのは、どのような突然の変化/異常が忍び込んだ可能性がありますか? 可能性が広いからかもしれないと誰かが言ってた。理由は何でもいい。一部の nuget パッケージでさえ、データベースに影響を与えます。最初は、これはログインや権限などの問題である可能性があると思っていたので、管理者としても実行しようとしました。いいえ、この問題は解決しませんでした。新しいデータベースを作成しようとしても、それはできないとだけ言われます。メッセージは次のようなものです。
T-SQL ステートメントまたはバッチの実行中に例外が発生しました。[Microsoft.SqlServer.ConnectionInfo]。データベース msdb を開けません。回復によって SUSPECT としてマークされています。[Microsoft Sql サーバー、エラー:926]
これから回復するにはどうすればよいですか?ご案内いただけますか?または、問題のヒントを正確に探すための手がかりは? 私の仕事はすべて止まっています。私の病気の sqlserver インストールを回復するためのあらゆる種類の支援は、謙虚に受け取られます.
だから、皆さんに道を教えてほしいと頼んでいます。ありがとうございます。
mysql - mysql "ENGINE=InnoDB" が joomla 3 インストールで機能しない理由
joomla 3のインストールの問題(データベースの作成でインストールがスタックする)の解決策をstackoverflowで入手しました。
「ENGINE=innoDB」を「ENGINE=MyIsam」に置き換える 解決策
joomla-folder\installation\sql\mysql\joomla.sql, it works well.
joomla 3のインストールでinnoDBが機能しない理由は誰でも知っています。
エンジンを「MyIsam」から「innoDB」に再度復元する必要がありますか (正常にインストールされた後)。