タグ付けされた質問 「mysql」

MySQLのすべてのバージョン(Microsoft SQL Serverではありません)。質問に関連する場合は、mysql-5.7のようなバージョン固有のタグも追加してください。

1
mysqlテーブルのコメントの変更
mysql テーブルのコメントは、作成時に次のように定義できることを知っています。 create table (...)comment='table_comment'; また、次の方法でコメントを表示できます。 show table status where name='table_name'; 作成後にテーブルのコメントを変更(変更)するにはどうすればよいですか?テーブルをドロップして再作成する必要はありません。
35 mysql  table  comments 

4
MySQLデータベースを別のドライブに移動するにはどうすればよいですか?
ローカルマシンでMySQL 5.5を使用して、大量の政府データを分析しています。デフォルトのドライブ(Win7 C:ドライブ)にあるローカルデータベースを作成しました。大容量のeSATA外付けドライブであるE:ドライブにデータを保存したいと思います。 どのような手順を実行する必要がありますか?
34 mysql 

3
CPUパフォーマンスはデータベースサーバーに関連していますか?
これは純粋に理論的な質問です。複数のサーバーにデプロイされたアプリケーションがあるとします。 ロードバランサー、 複数/スケーラブルなアプリケーションサーバー (単一の)データベースサーバー(現時点では) 最初の2つの部分では、何を探すべきかがわかります。しかし、データベースサーバーはどうでしょうか。どのようなハードウェアを探すべきですか? CPU周波数はデータベースサーバーに関連していますか? 複数のコアCPUが関連していますか? RAMはCPUよりも重要ですか? PS:選択したデータベースがMySQLまたはPostgreSQLであると仮定します。

5
InnoDBでの単純なSELECTがMyISAMよりも遅いのはなぜですか?
私にはかなり厄介な問題があります。メインデータベースエンジンとしてINNODBを使用し、冗長性のためにgalera-clusterを使用するために前者が必要なため、MyISAMを放棄します。 newbb_postテーブルをコピー(説明が続きます)という新しいテーブルにコピーnewbb_innopostし、InnoDBに変更しました。現在、テーブルには5,390,146それぞれエントリがあります。 新しく起動したデータベースでこれらの選択を実行すると(この時点でキャッシュは関係しません!)、データベースは次の結果を生成します(完全な出力は省略します。結果の並べ替えをデータベースに依頼しないことに注意してください)。 SELECT post.postid、post.attach FROM newbb_post AS post WHERE post.threadid = 51506; 。 。 | 5401593 | 0 | | 5401634 | 0 | + --------- + -------- + セット内の62510行(0.13秒) SELECT post.postid、post.attach FROM newbb_innopost AS post WHERE post.threadid = 51506; 。 。 | 5397410 | 0 | | 5397883 …

5
友情のためにリレーションシップテーブルを設計するにはどうすればよいですか?
のA友人であればB、値ABとの両方を保存する必要BAがありますか、それとも1つで十分ですか?両方の方法の長所と短所は何ですか。 私の観察は次のとおりです。 両方を保持する場合、友人からリクエストを受け取ったときに両方を更新する必要があります。 両方を保持しないJOINと、このテーブルで複数の作業を行う必要があるときに困難を感じました。 現在、私は関係を一方向に維持しています。 この場合、どうすればよいですか?何かアドバイス?

4
本番RDSインスタンスをアップグレードする最適な方法は何ですか?
実稼働システムの一部としてMySQLの小さなRDSインスタンスがあり、IOPSが提供されている中規模のインスタンスにアップグレードしたい。 昔ながらのDBAとして、「スレーブの追加、マスターへの昇格、クライアントの切り替え」メソッドについては知っていますが、AWSは魔法のワンクリックアップグレードパス、つまり「インスタンスのアップグレード」、「提供されたIOPSの追加」を提供することを約束しています。 テストRDSインスタンスでこれを試してみました。ダウンタイムが長すぎます。私見:小規模から中規模のアップグレードでは約5分、提供されたIOPSへの切り替えでは約30分(!!!)。 これは正常な動作ですか? ダウンタイムのない本番RDSでアップグレードを実行する方法はありますか? 「停止、スナップショットの作成、スナップショットからより大きなインスタンスへの復元」方法をお勧めしますか?
33 mysql  amazon-rds 

6
MySQL単一テーブルの1,000万行以上をできるだけ速く更新する方法は?
ほとんどのテーブルでMySQL 5.6とInnoDBストレージエンジンを使用します。InnoDBバッファープールのサイズは15 GBで、Innodb DB +インデックスは約10 GBです。サーバーには32GBのRAMがあり、Cent OS 7 x64を実行しています。 約1,000万件以上のレコードを含む1つの大きなテーブルがあります。 24時間ごとにリモートサーバーから更新されたダンプファイルを取得します。ファイルはcsv形式です。私はそのフォーマットを制御できません。ファイルは最大750 MBです。MyISAMテーブルに行ごとにデータを挿入しようとしましたが、35分かかりました。 ファイルから10-12のうち1行につき3つの値のみを取得し、データベースで更新する必要があります。 このようなことを達成する最良の方法は何ですか? これを毎日する必要があります。 現在、Flowは次のようになっています。 mysqli_begin_transaction ファイルを1行ずつ読み込む 各レコードを行ごとに更新します。 mysqli_commit 上記の操作を完了するには約30〜40分かかりますが、これを実行している間、他の更新が行われているため、 ロック待機タイムアウトを超過しました。トランザクションを再開してみてください アップデート1 を使用して新しいテーブルにデータを読み込みますLOAD DATA LOCAL INFILE。MyISAM 38.93 secでは、InnoDBでは7分5.21秒かかりました。それから私はやった: UPDATE table1 t1, table2 t2 SET t1.field1 = t2.field1, t1.field2 = t2.field2, t1.field3 = t2.field3 WHERE t1.field10 = t2.field10 Query OK, …

3
大きな2億2000万行のテーブル(9ギガデータ)でクエリを高速化する方法は?
問題: 互換性またはマッチングについて、メンバーがお互いに評価できるソーシャルサイトがあります。このuser_match_ratingsテーブルには、2億2000万を超える行(9ギガのデータまたはほぼ20ギガのインデックス)が含まれています。このテーブルに対するクエリは、slow.log(しきい値> 2秒)に定期的に表示され、システムで最も頻繁に記録される低速クエリです。 Query_time: 3 Lock_time: 0 Rows_sent: 3 Rows_examined: 1051 "select rating, count(*) as tally from user_match_ratings where rated_user_id = 395357 group by rating;" Query_time: 4 Lock_time: 0 Rows_sent: 3 Rows_examined: 1294 "select rating, count(*) as tally from user_match_ratings where rated_user_id = 4182969 group by rating;" Query_time: 3 Lock_time: …

3
MySQL / Amazon RDSデータベースをS3にバックアップする推奨方法は何ですか?
これには2つの目的があります。 Amazon Web Servicesで地域全体に問題が発生した場合にオフサイトのバックアップを作成します。 量産データを量産請求アカウントからベータ請求アカウントにコピーするには。 現在、Amazonはこれら2つのユースケースのいずれかをすぐにサポートしているようには見えません。 上記のmysqldumpおよびxtrabackup(フォームポストを参照)を見てきました。 私はまた、より複雑なプロセスを見ました(ここに文書化されています) ソース請求アカウント(prod)の新しいRDSサーバーは、最近のバックアップから分離されます。 手順1でRDSサーバーにアクセスできる新しいEC2インスタンスがスピンアップされます。 mysqldumpは、このデータベースのバックアップを作成するために使用されます。 バックアップはオフサイトの場所にコピーされます(S3?)。 別のアカウントや地域で、新しいRDSサーバーがスピンアップされます。 データベースダンプがインポートされます。 ヒントと提案を歓迎します。

3
絶対的なパフォーマンスのために、SUMは高速ですか、それともCOUNTですか?
これは、特定の条件に一致するレコードの数のカウントに関連していますinvoice amount > $100。 私は好む傾向がある COUNT(CASE WHEN invoice_amount > 100 THEN 1 END) ただし、これは有効です SUM(CASE WHEN invoice_amount > 100 THEN 1 ELSE 0 END) 次の2つの理由から、COUNTの方が望ましいと考えていました。 意図を伝えます COUNT COUNT おそらくi += 1どこかで単純な操作が行われますが、SUMはその式が単純な整数値であると期待することはできません。 特定のRDBMSの違いに関する特定の事実はありますか?

2
Amazon RDS for MySQLとAmazon EC2インスタンスへのMySQLのインストール
職場では、すべてのWebサーバーをAmazon EC2でホストし、通常、Apache Webサーバーと同じボックスにインストールされたMySQLデータベースを使用し、それらと通信しましたlocalhost。現在、システムのいずれかのためにデータベースを独自のサーバーに移行する必要があります。Amazon RDSを使用するか、新しいAmazon EC2ボックスを起動してMySQLをインストールするという2つのソリューションから選択できます。 RDSは、EC2と同じ会社が提供する専用のデータベースサービスであり、明らかに優れたオプションである必要があるようです。ただし、2つのオプションの価格(http://aws.amazon.com/ec2/pricingおよびhttp://aws.amazon.com/rds/pricingを参照)を見ると、RDSサーバーのコストはほぼ同じ仕様のボックスでは、EC2サーバーの2倍。 バックアップを自分で処理でき、EC2がRDSと同じようにインスタンスをスケールアップできることを考えると、EC2の代わりにRDSを使用する理由はまったくわかりません。私が正しければ誰もRDSを使用しないので、おそらく何か大きなものを見逃しているようです。正確に何が欠けていますか?EC2インスタンスに独自のデータベースをインストールすることに対するRDSの利点は何ですか?
31 mysql  amazon-rds 


9
スコアテーブルでユーザーのランクを取得する
ハイスコ​​アを保存する非常にシンプルなMySQLテーブルがあります。次のようになります。 Id Name Score ここまでは順調ですね。質問は次のとおりです。ユーザーランクを取得するにはどうすればよいですか。たとえば、ユーザーがいるNameかId、またはランクを取得したい場合、すべての行がの降順で順序付けられScoreます。 例 Id Name Score 1 Ida 100 2 Boo 58 3 Lala 88 4 Bash 102 5 Assem 99 この場合、Assem彼は3番目に高いスコアを得たため、ランクは3になります。 クエリは、必要な(のみ)ランクを含む1つの行を返す必要があります。
31 mysql  rank 

2
MySQLおよびウィンドウ関数
MySQLウィンドウ関数をサポートしていないようです。 たとえば、シンプル:COUNT(*) OVER() AS cnt動作しません。 これが商用バージョンにも当てはまるかどうかはわかりません(コミュニティバージョンは限定的なサブセットであると想定しています)。 そうでない場合、この欠落機能をどのように回避しますか?

3
文字対整数の主キー
メインエンティティの可能な属性を含む複数のルックアップテーブルを持つデータベースを設計しています。これらの属性IDをメインテーブルに格納するときに、単なる乱数ではなく意味のある値が表示されるように、自動インクリメント整数ではなく、4または5文字のキーを使用してこれらのルックアップ値を識別することを考えています。 文字フィールドを整数ではなく主キーとして使用すると、パフォーマンスにどのような影響がありますか? それが重要な場合は、MySQLを使用しています。 [編集] これらのルックアップテーブルには、まれに新しいレコードが追加されます。それらは手動で保守され、文字ベースのキーも手動で作成されます。以下に例を示します。 CUISINES ID Description ----- -------------- CHNSE Chinese ITALN Italian MXICN Mexican

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.