問題タブ [mysql]
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 - C言語初心者のためのRDMS?
C言語で初心者が使うべきデータベースは?
MySQL を使用できますか?
ありがとう
mysql - MySQLでALTERTABLEステートメントの進行状況を確認する方法はありますか?
たとえば、ALTER TABLEステートメントを発行して、インデックスのサイズが255バイトで、フィールドのデータの平均サイズが30kである134k行のInnoDBテーブルのMEDIUMTEXTフィールドにインデックスを作成しました。このコマンドは過去15分ほど実行されています(データベースで実行されているのはこれだけです)。5分、5時間、または5日近くで終了するかどうかを判断する方法はありますか?
mysql - 1つのクエリでテーブルを更新/選択できますか?
ページが表示されたときにデータを選択し、「ビュー」列を更新する必要があります。これを1つのクエリで行う方法はありますか、それとも個別のクエリに使用する必要がありますか?
sql - INSERT ステートメントでの mysql の計算列
日付と他のテーブルの列数を記録するテーブルが必要だとしましょう(または、実際にはあらゆる種類の数学/文字列連結など)。
挿入を行うたびにカウント列を計算することは可能ですか?
たとえば、次のようにします。
mysqlによってカウントが計算されます。
明らかに、クエリを実行してカウントを取得して挿入することで自分で行うことができますが、これはより良いでしょう.
mysql - MySQLエラー1093-FROM句で更新するターゲットテーブルを指定できません
story_category
データベースに破損したエントリのあるテーブルがあります。次のクエリは破損したエントリを返します。
私はそれらを実行して削除しようとしました:
しかし、次のエラーが発生します。
#1093-FROM句で更新するターゲットテーブル'story_category'を指定できません
どうすればこれを克服できますか?
mysql - MySQL のパーティショニング / シャーディング / スプリッティング - どちらに進むべきか?
約 70 GB の InnoDB データベースがあり、今後 2 ~ 3 年で数百 GB に拡大すると予想しています。データの約 60% が 1 つのテーブルに属しています。現在、64 GB の RAM を備えたサーバーを使用しているため、データベースは非常にうまく機能しているため、データベース全体がほぼメモリに収まりますが、データ量がかなり大きくなる将来が心配です。現在、テーブル (特にデータの大部分を占めるテーブル) を分割する何らかの方法を検討しており、どのように行うのが最善の方法であるかを考えています。
私が現在知っているオプションは
- バージョン 5.1 に付属する MySQL Partitioning の使用
- データのパーティショニングをカプセル化するある種のサードパーティ ライブラリを使用する (休止状態のシャードなど)
- アプリケーション内に自分で実装する
私たちのアプリケーションは、J2EE と EJB 2.1 で構築されています (いつか EJB 3 に切り替えたいと思っています)。
何を提案しますか?
編集 (2011-02-11):
更新情報: 現在、データベースのサイズは 380 GB、「大きな」テーブルのデータ サイズは 220 GB、インデックスのサイズは 36 GB です。したがって、テーブル全体がメモリに収まらなくなりますが、インデックスはメモリに収まります。
システムはまだ (同じハードウェア上で) 正常に動作しており、データのパーティション化についてまだ検討中です。
編集 (2014-06-04): もう 1 つの更新: データベース全体のサイズは 1.5 TB で、「大きな」テーブルのサイズは 1.1 TB です。サーバーを 128 GB RAM の 4 プロセッサ マシン (Intel Xeon E7450) にアップグレードしました。システムはまだ正常に動作しています。次に計画しているのは、大きなテーブルを別のデータベース サーバーに配置することです (ソフトウェアで必要な変更を既に行っています) と同時に、256 GB RAM を備えた新しいハードウェアにアップグレードします。
このセットアップは 2 年間続くことになっています。その後、最終的にシャーディング ソリューションの実装を開始するか、1 TB の RAM を搭載したサーバーを購入する必要があります。
編集 (2016-01-18):
それ以来、大きなテーブルを別のサーバー上の独自のデータベースに配置しました。現在、このデータベースのサイズは約 1.9 TB で、他のデータベース (「大きな」テーブルを除くすべてのテーブルを含む) のサイズは 1.1 TB です。
現在のハードウェア設定:
- HP ProLiant DL 580
- 4 x Intel(R) Xeon(R) CPU E7- 4830
- 256GBのRAM
この設定でパフォーマンスは問題ありません。
mysql - MySQL でバックアップを行うにはどうすればよいですか?
MySQL でバックアップを行うにはどうすればよいですか?
「x」時間ごとに mysqldump を実行するよりも優れた方法があることを願っています。
SQL Server のように、毎日完全バックアップを取り、その後 1 時間ごとにインクリメンタルを作成できるようなものはありますか? DB が停止した場合、最新のバックアップまで復元できますか?
DBログのようなもので、ログが死なない限り、DBが死んだ正確な時点まで復元できますか?
また、これらはロックにどのように影響しますか? mysqldump を実行すると、オンライン トランザクションがしばらくロックされることが予想されます。
mysql - MySQL UTF/Unicode移行のヒント
MySQLテーブルをデフォルトのケースに依存しないスウェーデン語またはASCII文字セットからutf-8に移行しようとするときに注意すべきヒントや落とし穴はありますか?私が関わっているプロジェクトのいくつかは、より良い国際化を目指して努力しており、データベースはこの変化の重要な部分になるでしょう。
データベースの変更を検討する前に、すべての入力/出力が同じ文字セットを使用していることを確認するために、UTF-8文字エンコード(重要度の低いものから高いものへ)を使用するように各サイトを変換します。
助けてくれてありがとう
php - LAMP アプリケーションでの SQL インジェクションをどのように防止しますか?
会話を始めるためのいくつかの可能性を次に示します。
- 初期化時にすべての入力をエスケープします。
- できれば SQL を生成するときに、各値をエスケープします。
最初の解決策は最適ではありません。Web ページに出力するなど、SQL 以外で使用する場合は、各値をエスケープ解除する必要があるためです。
2 番目の解決策はより理にかなっていますが、各値を手動でエスケープするのは面倒です。
プリペアド ステートメントは知っていますが、MySQLiは面倒です。また、クエリを入力から分離することも気になります。順序を正しくすることは重要ですが、間違いを犯しやすく、間違ったデータを間違ったフィールドに書き込んでしまうからです。
mysql - MySQL データベース内のすべてのトリガーをどのように一覧表示しますか?
MySQL データベース内のすべてのトリガーを一覧表示するコマンドは何ですか?