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

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

1
MySQLでテーブルを交換するにはどうすればよいですか?
時々foo計算されるいくつかの統計を含むテーブルがあるとします。他のクエリで頻繁に使用されます。 だからこそ、最新の統計を計算foo_newし、計算の準備ができたらそれらを交換したいのです。 私はそれをできた ALTER TABLE foo RENAME foo_tmp; ALTER TABLE foo_new RENAME foo; しかしfoo、テーブルがないときにクエリがこれらの2行の間にテーブルを必要とする場合はどうなりますfooか?どういうわけかロックする必要があると思います...または別の方法がありますか?

3
InnoDBがすべてのデータベースを1つのファイルに保存するのはなぜですか?
MyISAMを使用して各テーブルを対応するファイルに保存すると便利でした。InnoDBは多くの面で進歩を遂げましたが、なぜInnoDBがすべてのデータベースを1つのファイルに保存するのか疑問に思います(ibdata1デフォルト)。 InnoDBがテーブルの個々のインデックスファイルによってファイル内のデータの場所をマップすることは理解していますが、1つのファイルにすべてのデータが混在する理由はわかりません。さらに重要なのは、なぜサーバー上のすべてのデータベースのデータを混合するのですか? MyISAMの興味深い機能は、データベースフォルダーを別のマシンにコピー/貼り付けしてから、データベースを(ダンプなしで)使用できることです。

6
顧客ごとにデータベースを作成すると、どのような問題が発生しますか?
stackoverflowポッドキャストから、Fog CreekはFogbugzの顧客ごとにデータベースを使用していることを覚えています。これは、Fogbugz On Demandサーバーに何万ものデータベースがあることを意味すると思います。 Webアプリの開発を始めたばかりで、同様の問題を解決する必要があります(独自の分離データを持つ多くの顧客)。 顧客ごとにデータベースを使用する場合、どのような問題が予想されますか?どうすれば解決できますか? 私の最初の考え 顧客ごとのデータベースの利点 よりシンプルなデータベーススキーマ シンプルなバックアップ-他の顧客に実際に影響を与えることなく、各顧客を順番にバックアップできます。 特定の顧客データを簡単にエクスポートできます。 キャッシュパフォーマンスの向上-よりアクティブなテーブルの1つへの書き込みは、書き込みを実行した単一の顧客にのみ影響します。 ハードウェア全体で簡単に拡張できます。たとえば、1台から2台のサーバーに移動する必要がある場合、顧客の半分を新しいサーバーに移動するだけです。 欠点 MySQLは5,000個のデータベースに対応できますか?パフォーマンスは低下しますか? スキーマへの変更は、すべてのデータベースに複製するのが難しい場合があります。スキーマのバージョン管理や、データベースをあるバージョンから別のバージョンに移行する方法を理解するスクリプトなど、このための自動化された計画が本当に必要になります。 すべてのお客様に共通することを行うことは、厄介または不可能かもしれません 上記と似ていますが、すべてのお客様に対して実行したい分析は不可能かもしれません。たとえば、すべての顧客の使用状況をどのように追跡する必要がありますか?

12
主キー/外部キーの一致が結合に使用されないのはなぜですか?
多くのDBMS(mysql、postgres、mssqlなど)を見つけることができる限り、fkとpkの組み合わせはデータへの変更を制限するためだけに使用されますが、それらはネイティブで結合する列を自動的に選択するために使用されることはほとんどありません(名前での自然な結合のように)。何故ですか?pk / fkを使用して2つのテーブル間のリレーションシップを既に定義している場合、データベースでそれらのテーブルを結合するとpk / fk列で結合したいことがわかりません。 編集:これを少し明確にするために: table1とtable2があるとします。table1の列aには外部キーがあり、これはtable2の主キーbを参照します。これらのテーブルを結合する場合、次のようにする必要があります。 SELECT * FROM table1 JOIN table2 ON table1.a = table2.b ただし、table1.aがtable2.bを参照するキーを使用してすでに定義しているので、DBMSシステムがtable1.aとtable2.bを結合列として自動的に使用することを難しくするべきではないようです。次のように単純に使用できます: SELECT * FROM table1 AUTO JOIN table2 ただし、多くのDBMSはこのようなものを実装していないようです。
48 mysql  sql-server 


5
DROP DATABASEに時間がかかるのはなぜですか?(MySQL)
新しいCentOSインストール。 大きなDB(2GBのsqlファイル)のインポートを実行していて、問題がありました。SSHクライアントは接続を失い、インポートはフリーズしたようです。別のウィンドウを使用してmysqlにログインしましたが、インポートが特定の3M行テーブルでスタックしているように見えました。 だから私は試した DROP DATABASE huge_db; 15〜20分後、何もありません。別のウィンドウで、私がやった: /etc/init.d/mysqld restart メッセージDROP DBウィンドウ:SERVER SHUTDOWN。その後、実際に物理サーバーを再起動しました。 mysqlに再度ログインしてチェックし、データベースがまだそこにあった、実行した DROP DATABASE huge_db; 再び、そして再び私はすでに約5分待っています。 繰り返しますが、新規インストールです。huge_db(システムDBS以外の)唯一のDBです。私は以前にこれほど速くdbをドロップしたことを誓いますが、多分間違っています。 データベースを正常に削除しました。30分ほどかかりました。また、mysqldumpのインポートが死んだと思ったとき、私は間違っていたと思うことに注意してください。端末の接続は失われましたが、プロセスはまだ実行中だったと思います。インポート中テーブル(3M行テーブル)を削除した可能性が最も高く、おそらくデータベース全体の3/4を削除しました。「top」がmysqlを使用してメモリを3%しか使用していないことを示していたのに、それ以上使用する必要があるように思えたのは誤解を招きました。 DBの削除には30分かかりました。そのため、サーバーを再起動する必要がなく、DROPが完了するのを待つこともできましたが、DROPクエリの取得に対するmysqlの反応はわかりません。 mysqldump経由でインポートするのと同じdb。 それでも、疑問が残ります。すべてのdbファイルを削除し、information_schemaからDBへのすべての参照を削除するだけで2 GBのデータベースを削除するのに30分以上かかるのはなぜですか?大したことは何ですか?
46 mysql  mysqldump 


3
mysqlでのカスケードの削除とカスケードの更新の違い
MySQLデータベースに2つのテーブルがありますparent- child。親テーブルに基づいて、子テーブルに外部キー参照を追加しようとしています。間の有意差があるON UPDATE CASCADEとは、ON DELETE CASCADE 私の親テーブル CREATE TABLE parent ( id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB; 私の質問は次のとおりです。次のSQLクエリの違いは何ですか。 ON DELETE CASCADE CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ) ENGINE=INNODB; ON UPDATE CASCADE CREATE TABLE …

3
UbuntuでMySQLテーブル名の大文字と小文字を区別しないようにするにはどうすればよいですか?
Ubuntu 13.10とMySQL 5.6を使用していますが、デフォルトではUbuntu(およびその他の* nix環境)でデータベース名とテーブル名の大文字と小文字が区別されることを知っています。 次に、MySQL をUbuntuで大文字と小文字を区別しないで動作させたいと思います。 出来ますか?はいの場合、どうすればいいですか?

3
ユーザーにスーパー特権を付与する方法は?
ユーザーを作成し、user1に特権を付与しました。 `grant all privileges on db1.* to user1@'%' with grant option; mysqlワークベンチを使用して、データベースにダンプをインポートしています。データベースdb1にダンプをインポートしているときに、次のエラーが発生します ERROR 1227 (42000) at line 49: Access denied; you need (at least one of) the SUPER privilege(s) for this operation そのダンプでは、すべてのテーブルは正常にインポートされますが、データベースへのルーチンのインポート中にエラーが発生します。特権に何か問題がありますか、私はuser1に与えました。ご意見をお聞かせください。

1
PostgreSQLおよびMySQLのスケーラビリティの制限
MySQLやPostgreSQLなどの非シャードリレーショナルデータベースのパフォーマンスは、10 TBを超えると「壊れる」と聞きました。 Netezza、Greenplum、Verticaなどでは思いつかないような制限が存在するのではないかと思いますが、これらの制限が定量化されている研究論文や正式なケーススタディに言及している人がいるかどうかを尋ねたいと思います。

9
MySQL用のMicrosoftの「SQL Server Profiler」のようなツールはありますか?[閉まっている]
MySQLでの開発中に、プロファイラーを起動できないことが本当に残念です。私が見つけSQLyogのは、クエリアナライザのための良い十分な代替品ですが、SQLプロファイラのような働きツールを発見していません。 MicrosoftのSQLプロファイラーを見たことがないMySQLの人向けに、ここにスクリーンショットがあります 私の以前の仕事では、SQLプロファイラに勝るツールがあり、スタックトレースも提供していました。 私が言及したようなMySQLで動作するツールを知っている人はいますか? (参考までに、MySQLでAltiris Profilerを使用することはできますが、Windowsを実行する必要があります。さらに、Symantec skuではないため、ライセンスは非常に複雑です)
43 mysql  profiler  tools 

2
MySQL:テーブルに関連する外部キーを確認する方法
MySqlのテーブルに関連する外部キーを表示する方法は? 背景:外部キー制約を持つテーブルをMySqlにドロップしたかった。私がそれをするとき、私はこれを得る: Error Code: 1217. Cannot delete or update a parent row: a foreign key constraint fails 他のテーブルを残すテーブルに関連する外部キーを削除するにはどうすればよいですか。

4
通信パケットの読み取りMySQLエラー
MySQLエラーログでは、次のような警告がかなり表示されます。 120611 16:12:30 [Warning] Aborted connection 2619503 to db: 'db_name' user: 'user_name' host: 'webapp_hostname' (Got an error reading communication packets) データ自体の損失に気付いていないので、この警告が何を意味するのか、それが何を引き起こすのか、そしてこれらを引き起こす問題にどのように対処するのか疑問に思います。これは、RHEL 6.1およびMySQL Enterprise 5.5にあります。
42 mysql  mysql-5.5 

6
データベースのSSDとHDD
MySQLサーバーを実行する新しいサーバーを購入しようとしています。この新しいサーバーは、メインマシンのスレーブになります。ただし、このサーバーは、「大量の読み取りと複雑なクエリ」のみのレポート専用になります。 現在、私はソリッドステートハードドライブへの投資を検討していますが、本当に価格に見合う価値があるのか​​疑問に思っていました。SSDとSATA 7200ハードドライブの違いは約1500ドルで、SSDのディスク容量は少なくなります。SSDに投資した場合、速度は顕著になりますか? 2(500GB SSD)を購入するよりも1500ドル安く4(500GB SATA 7200)を購入できます アップグレードする価値があるかどうかを判断するのを手伝ってもらえますか? もう一度言いたいのは、私は使用しquery_cacheていないため、大量のディスク読み取りがあることです。 このサーバーは32GBのRAMを搭載し、Ubuntu 12.04を実行します
42 mysql  ssd 

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