問題タブ [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.

0 投票する
9 に答える
20627 参照

mysql - MySQLでALTERTABLEステートメントの進行状況を確認する方法はありますか?

たとえば、ALTER TABLEステートメントを発行して、インデックスのサイズが255バイトで、フィールドのデータの平均サイズが30kである134k行のInnoDBテーブルのMEDIUMTEXTフィールドにインデックスを作成しました。このコマンドは過去15分ほど実行されています(データベースで実行されているのはこれだけです)。5分、5時間、または5日近くで終了するかどうかを判断する方法はありますか?

0 投票する
5 に答える
2927 参照

mysql - 1つのクエリでテーブルを更新/選択できますか?

ページが表示されたときにデータを選択し、「ビュー」列を更新する必要があります。これを1つのクエリで行う方法はありますか、それとも個別のクエリに使用する必要がありますか?

0 投票する
3 に答える
3583 参照

sql - INSERT ステートメントでの mysql の計算列

日付と他のテーブルの列数を記録するテーブルが必要だとしましょう(または、実際にはあらゆる種類の数学/文字列連結など)。

挿入を行うたびにカウント列を計算することは可能ですか?

たとえば、次のようにします。

mysqlによってカウントが計算されます。

明らかに、クエリを実行してカウントを取得して挿入することで自分で行うことができますが、これはより良いでしょう.

0 投票する
16 に答える
595001 参照

mysql - MySQLエラー1093-FROM句で更新するターゲットテーブルを指定できません

story_categoryデータベースに破損したエントリのあるテーブルがあります。次のクエリは破損したエントリを返します。

私はそれらを実行して削除しようとしました:

しかし、次のエラーが発生します。

#1093-FROM句で更新するターゲットテーブル'story_category'を指定できません

どうすればこれを克服できますか?

0 投票する
8 に答える
19354 参照

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

この設定でパフォーマンスは問題ありません。

0 投票する
15 に答える
11004 参照

mysql - MySQL でバックアップを行うにはどうすればよいですか?

MySQL でバックアップを行うにはどうすればよいですか?

「x」時間ごとに mysqldump を実行するよりも優れた方法があることを願っています。

SQL Server のように、毎日完全バックアップを取り、その後 1 時間ごとにインクリメンタルを作成できるようなものはありますか? DB が停止した場合、最新のバックアップまで復元できますか?

DBログのようなもので、ログが死なない限り、DBが死んだ正確な時点まで復元できますか?

また、これらはロックにどのように影響しますか? mysqldump を実行すると、オンライン トランザクションがしばらくロックされることが予想されます。

0 投票する
5 に答える
1059 参照

mysql - MySQL UTF/Unicode移行のヒント

MySQLテーブルをデフォルトのケースに依存しないスウェーデン語またはASCII文字セットからutf-8に移行しようとするときに注意すべきヒントや落とし穴はありますか?私が関わっているプロジェクトのいくつかは、より良い国際化を目指して努力しており、データベースはこの変化の重要な部分になるでしょう。

データベースの変更を検討する前に、すべての入力/出力が同じ文字セットを使用していることを確認するために、UTF-8文字エンコード(重要度の低いものから高いものへ)を使用するように各サイトを変換します。

助けてくれてありがとう

0 投票する
5 に答える
1061 参照

php - LAMP アプリケーションでの SQL インジェクションをどのように防止しますか?

会話を始めるためのいくつかの可能性を次に示します。

  1. 初期化時にすべての入力をエスケープします。
  2. できれば SQL を生成するときに、各値をエスケープします。

最初の解決策は最適ではありません。Web ページに出力するなど、SQL 以外で使用する場合は、各値をエスケープ解除する必要があるためです。

2 番目の解決策はより理にかなっていますが、各値を手動でエスケープするのは面倒です。

プリペアド ステートメントは知っていますが、MySQLiは面倒です。また、クエリを入力から分離することも気になります。順序を正しくすることは重要ですが、間違いを犯しやすく、間違ったデータを間違ったフィールドに書き込んでしまうからです。

0 投票する
6 に答える
140762 参照

mysql - MySQL データベース内のすべてのトリガーをどのように一覧表示しますか?

MySQL データベース内のすべてのトリガーを一覧表示するコマンドは何ですか?

0 投票する
4 に答える
2054 参照

mysql - MySQL トリガーの設定

トリガーについて聞いたことがありますが、いくつか質問があります。
トリガーとは
設定方法を教えてください。
典型的な SQL 以外に、取るべき予防策はありますか?