問題タブ [database-indexes]
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.
sql-server-2005 - クラスタ化インデックスの合計断片化が高くなっています (66.67%)
7 列と 400 行のテーブルがあります。主キー列にクラスター化インデックスがあります。インデックス ページのフルネスは 68.98% で、合計フラグメンテーションは 66.67% です。
これは、アプリケーション クエリの 90% で使用しているテーブルであり、断片化の割合が高いため、かなりの数のクエリの速度が低下していると感じています。何かアドバイス?
観察: テーブルの 7 つの列のうち、3 つの列はすべての行で完全に NULL 値になっています。これが原因でしょうか?
schema - Cassandra 0.8.2 でスキーマを更新できません
0.8.2 で単一ノードの cassandra をインストールしています。cassandra-cli のような列ファミリーをいくつか作成しました
今度は、この列ファミリに対してセカンダリ インデックスを使用する必要があります。そのためには、スキーマをアップグレードする必要があります。これを cassandra-cli のようにアップグレードしようとすると
次のエラーメッセージが表示されます
org.apache.cassandra.db.marshal.MarshalException: 'col1' を解析できません
bytes('col1') を使用してみましたが、キーワード ascii と utf8 のいずれも機能しないと想定しています。
16 進バイトとして
cassandra 0.8.4 でも同じことが問題なく動作しますが、
mysql - MySQL のインデックスを修正して、可能性のあるキーが左結合で null にならないようにする
この質問は、クエリで Explain I を実行したときにここに投稿された問題の続きです
私は応答を得る
テーブルはで作成されます
インデックスまたはクエリを変更して、キーをより効果的に利用するにはどうすればよいですか? データベースが 700 万行に達すると、クエリに約 30 秒かかります
を使用してダミーデータで作成できる編集
mysql - ORDER BY 最適化は、次の SELECT ステートメントで有効になりますか?
最適化したいSELECT
ステートメントがあります。最適化によるmysql-orderは、場合によってはインデックスを使用してORDER BY
. 具体的には次の点です。
キーの連続しない部分で ORDER BY を使用します
。 SELECT * FROM t1 WHERE key2=constant ORDER BY key_part2;
こういうこともあるんだな、と思わせてくれます。次のインデックスを使用しています。
次の SQL ステートメントを使用します。
- インデックスを削除して、
met_value_index1
新しい順序で作成するRTU_NB
だけで十分でしょうか?MP_NB
DATETIME
- RTU_NB を
ORDER BY
句に含める必要がありますか?
結果: @meriton が提案したものを試し、 index を追加しました
met_value_index2
。SELECT
1.2 秒後に完了しましたが、以前は 5.06 秒後に完了していました。以下は質問に属していませんが、補足として: 他のいくつかの試行の後、エンジンを MyISAM から InnoDB に切り替え、rtu_nb, mp_nb, datetime
主キーを使用して、0.13 秒後にステートメントが完了しました!
mysql - 最適な Mysql 構成 (パーティション) & インデックス / ハイパーテーブル / RAID 構成 (巨大なデータベース)
通称:
- 主キーによる DB パーティショニング
- インデックス サイズの問題。
- DB サイズは 1 日あたり約 1 ~ 3 GB 増加します
- レイドのセットアップ。
- ハイパーテーブルの経験はありますか?
長いバージョン:
ホームサーバーを構築/購入しました:
- Xeon E3-1245 3,4 HT
- 32GBのRAM
- 6x 1.5 TB WD Cavier Black 7200
Server Board INTEL S1200BTL Raidを使用します(Raid コントローラーを購入するお金はありません)。http://ark.intel.com/products/53557/Intel-Server-Board-S1200BTL
メインボードには、4x SATA 3GB/s ポートと 2x SATA 6GB/s ポートがあります。
RAID 10 で 6 台すべての HDD をセットアップできるかどうかはまだわかりませんが、
不可能な場合は、4x hdds Raid 10 (MYSQL DB) & 2xhdds Raid 0 (OS/Mysql インデックス) を考えました。
(RAID 0 が壊れても問題ありません。DB を確保するだけで済みます)
DBについて:
ドメイン、URL、リンクなどが保存されるWebクローラー DBです。したがって、(1-1000000) (1000001-2000000) などの各テーブルの主キーでDBを分割すると考えました。
DBで検索/挿入/選択クエリを実行するとき、ホールテーブルをスキャンする必要があります.ROW 1にあるものとROW 1000000000000にあるものがあります.
主キー (auto_increment) でこのようなパーティションを作成すると、すべての CPU コアが使用されますか? 各パーティションを並行してスキャンするように?または、パーティションなしで 1 つの巨大な DB に固執する必要があります。
DBは非常に大きくなります。現在、私のホームシステムでは、
externlink とリンク インデックスを修正できることがわかりました。externlinkを追加したところ、そのフィールドをクエリする必要があり、リンク インデックスを使用できませんでした。わかりますか、インデックスで何を調整できますか? 私の新しいシステムは 32 GB になりますが、DB がこの速度で成長する場合、RAM の 90% を数週間/月で使用します。
パックされたINDEXは役に立ちますか? (パフォーマンスの低下はどうですか?)
他の重要なテーブルは 500MB 未満です。
必要なものをすべて抽出したら、このテーブルからデータを消去できます。
ハイパーテーブルの経験はありますか? http://hypertable.org/ <= Google の Bigtable。ハイパーテーブルに移行すると、パフォーマンスが向上しますか (データの抽出/検索/挿入/選択 & DB サイズ)。私はページを読みましたが、まだ無知です。MYSQL と Hypertables を直接比較することはできません。すぐに試してみます。最初にドキュメントを読む必要があります。
私が必要としているのは、私のセットアップに適合するソリューションですが、他のハードウェアのセットアップにお金が残っていないためです。
手伝ってくれてありがとう。
sql - ビューでWhere句の前にステートメント処理を選択します
次のように、charindexのサブストリングを選択するステートメントがあります。
上記のステートメントをselectクエリで実行すると、結果は問題なく返されます。スキーマにバインドされたインデックス付きビューで上記のステートメントを実行すると、次のエラーが発生します。
この問題を解決するために、負の値の可能性を排除するために、CharIndexの最大値と0を取得する関数を記述します。しかし、where句がselectステートメントを除外しない理由を誰かが知っていますか?
database - データベースのインデックス作成でのバイナリ検索の使用方法
二分探索の仕組みは知っているが、二分探索の実用的な使い方を知りたい...インターネットで検索したところ、主な用途はデータベースのインデックス作成であることがわかりましたが、二分探索がデータベースでどのように役立つかわかりませんでした索引付け。
mysql - このMYSQLクエリにインデックスを使用するように説得するにはどうすればよいですか?
以下は、問題のクエリのEXPLAINです。
条件が設定されている場所で実行しようとしている3つの列にインデックスがありますが、残念ながら、インデックスのマージを使用しようとはしていません。複数列のインデックスを作成する唯一のオプションですか、それともそれらのインデックスを使用してMYSQLを延期するものがありますか?
mysql - CakePHP モデルの find() が整数文字列の mysql インデックス b/c にヒットしない
このようなコードを使用している間:
フィールドは varchar です。mysql フィールド cake は次のようなクエリを生成します。
予想の代わりに
これにより、mysql は文字列インデックスを使用する代わりに DB 全体を int にキャストします。他の誰かが書いた既に動作しているシステムを最適化しようとしていますが、クイック grep を実行すると、「修正」する必要がある何千もの検索結果が表示されます。したがって、受け入れられる唯一の解決策は、model-layer または mysql-layer のいずれかです。
tl;dr: Cake が条件から mysql に数値ではなく文字列として整数文字列を渡すようにする方法は?