問題タブ [innodb]
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 - MyISAM 対 InnoDB
私は、多くのデータベース書き込みを伴うプロジェクトに取り組んでいます ( 70% の挿入と 30% の読み取り)。この比率には、1 回の読み取りと 1 回の書き込みと見なされる更新も含まれます。読み取りはダーティになる可能性があります (たとえば、読み取り時に 100% 正確な情報は必要ありません)。
問題のタスクは、1 時間に 100 万を超えるデータベース トランザクションを実行することになります。
MyISAM と InnoDB の違いについて Web でたくさん読んだことがありますが、このタスクに使用する特定のデータベース/テーブルには MyISAM が当然の選択のようです。私が読んでいるように見えることから、行レベルのロックがサポートされているため、トランザクションが必要な場合は InnoDB が適しています。
このタイプの負荷 (またはそれ以上) の経験がある人はいますか? MyISAM は進むべき道ですか?
mysql - MySQL データベースの名前をすばやく変更するにはどうすればよいですか (スキーマ名を変更します)?
これについては、 MySQLの MySQL マニュアルで説明しています。
通常、データベースをダンプして、新しい名前で再インポートします。これは、非常に大きなデータベースのオプションではありません。どうやらRENAME {DATABASE | SCHEMA} db_name TO new_db_name;
悪いことをし、ほんの一握りのバージョンにしか存在せず、全体的に悪い考えです。
これは、 MyISAMとは非常に異なる方法で格納するInnoDBで動作する必要があります。
mysql - MyISAM テーブルをより安全に使用するにはどうすればよいですか?
InnoDB の安全性、一貫性、セルフチェック機能が気に入っています。
しかし、MyISAM の速度と軽量さが必要です。
クラッシュや不良データなどによる MyISAM の破損を防ぐにはどうすればよいですか? チェック (CHECK TABLE または myisamchk のいずれか) を通過するのに永遠に時間がかかります。
私はトランザクションのセキュリティを求めているわけではありません。それが InnoDB の目的です。しかし、数時間 (または数日!) 後ではなく、すぐに再起動できるデータベースが必要です。
更新:テーブルにデータをより速くロードする方法を尋ねているのではありません。私はすでにそれに対して頭を悩ませており、LOAD DATA に MyISAM テーブルを使用する方がはるかに高速であると判断しました。私が今求めているのは、MyISAM テーブルを使用するリスクを軽減することです。つまり、損傷の可能性を減らし、回復速度を上げます。
mysql - MySql4の上にインストールされたMySql5でinno-dbサポートを有効にする方法は?
MySqlのインストールされたインスタンスでinno-dbサポートを有効にする方法は?
mysql-5.0.67-win32をインストールしました。「showengines」を実行すると、「InnoDB」は「DISABLED」になります。ドキュメントによると、MySqlはinno-dbをサポートしてコンパイルされています(ドキュメントから:DISABLEDの値は、サーバーがエンジンを無効にするオプションで起動されたか、エンジンを有効にするために必要なすべてのオプションが指定されていないために発生します)。
my.iniで、「skip-innodb」という行にコメントしました。これは役に立ちませんでした。他のすべてのinno-db関連変数は変更されません。
説明された状況を経験する前に、私はいくつかの異常な行動を実行しました。mysql-4.0.17-winをインストールしています。私はそれをアンインストールし、この後にmysql-5.0.67-win32をインストールしました。インストールウィザードで、MyISAMサポートのみを選択しました(そのような方法でinno-dbサポートを無効にしたことを理解している限り。inno-dbのサポートを使用して再インストールしようとすると、アカウント情報で以前のデータベース「mysql」を使用する際に問題が発生しました) 。
MySQLのドキュメントには、mysqldumpを使用してデータをエクスポートし、その後、アップグレードの過程でエクスポートされたデータをインポートする必要があると記載されています。そうしようとしましたが、データをインポートすると、構文エラーに関するメッセージが表示されました(mysqlの4番目と5番目のバージョンのいくつかの非互換性に関連していると思います)
mysql - MySQL InnoDB データベースの復元
MySQL 5.0 で誤って削除されたデータベースを復元する必要があります。バックアップ ファイルを確認したところ、データベース データを保持するための .FRM ファイルしかないようです。
バックアップからデータベースの復元/インポートを実行するために必要なのはこれだけなのか、それともこれを完了するために他に必要なファイルがあるのか 誰にもアドバイスできますか?
mysql - mysqldumpを使用してMySQLInnoDBデータベースをダンプおよびロードする最も簡単な方法は何ですか?
mysqldumpとMySQL5.1を使用して、約40のInnoDBテーブルと約1.5GBのデータを含むデータベースのコピーを作成したいと思います。
データのダンプとロードを最速にする最良のパラメーター(つまり、-single-transaction)は何ですか?
同様に、データを2番目のDBにロードする場合、次のことを行う方が迅速です。
1)結果を2番目のMySQLサーバーインスタンスに直接パイプし、-compressオプションを使用します
また
2)テキストファイルからロードします(例:mysql <my_sql_dump.sql)
mysql - MySQL DB 全体がメモリにロードされていることを確認するにはどうすればよいですか?
私はmysqlサーバーを実行しています。かなり高速になると聞いたので、DB全体がRAMにロードされるようにしたいと思います。
これは本当ですか?どうすればそれを確認できますか?
mysql - mysql の "drop database" には時間がかかります -- なぜですか?
データベース「A」と「B」のペアを備えた mysql5.0。どちらも大きな innodb テーブルを備えています。「データベース A をドロップします。」データベース「B」を数分間フリーズします。その時点で「A」を使用しているものは何もないのに、なぜこれほど集中的な操作になるのでしょうか?
ボーナス ポイント: 「A」を使用し、データを「B」にアップロードしてから、「B」の使用に切り替えるとすると、これをより速く行うにはどうすればよいでしょうか? データベースを削除することは、通常、常に行う必要があるようなことではないため、これは少し外れています。
mysql - テーブルまたは列へのすべての外部キーを確認するにはどうすればよいですか?
MySQL で、特定のテーブルを指すすべての外部キー制約のリストを取得するにはどうすればよいですか? 特定の列?これは、この Oracle の質問と同じですが、MySQL の場合です。
mysql - 特定のテーブルの MySQL エンジンの種類を確認するにはどうすればよいですか?
私の MySQL データベースには、異なるストレージ エンジン (具体的には myisam と innodb) を使用するいくつかのテーブルが含まれています。どのテーブルがどのエンジンを使用しているかを調べるにはどうすればよいですか?