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

InnoDB:MySQLのACID準拠のストレージエンジン

10
.frmおよび.ibdファイルからテーブルを復元しますか?
以前に/ var / lib / mysql / ddmsディレクトリのコピーを保存しました(「ddms」はスキーマ名です)。を実行して、新しくインストールしたUbuntu 10.04.3 LTSに新しいMySQLをapt-get install mysql-serverインストールしました。バージョン5.1がインストールされていると思います。/ var / lib / mysqlの下のddmsディレクトリをコピーすると、そのテーブルの一部は正常に機能します。これらは、3つのファイル(.frmファイル、.MYDファイル、および.MYIファイル)が関連付けられたテーブルです。 ただし、ファイルのセットが異なる2つのテーブル(.frmファイルと.ibdファイル)があります。これらの2つのテーブルは、phpMyAdminのテーブルリストには表示されませんでした。エラーログを見ると、次のように表示されます。 [ERROR] Cannot find or open table ddms/dictionary_item from the internal data dictionary of InnoDB though the .frm file for the table exists. Maybe you have deleted and recreated InnoDB data files but …
36 mysql  innodb 


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 …

4
MySQL InnoDBクラッシュの事後分析
今朝、MySQLがクラッシュしました。 MySQLに含まれている標準のデータベースを除き、私が使用するものはすべてInnoDBです。 MySQLデーモンを再起動しようとしましたが、2回失敗しました。 その後、サーバー全体を再起動すると、MySQLが正しく起動し、それ以降は正常に機能しています。 初期クラッシュのmysqldログファイルには以下が含まれます。 120927 10:21:05 mysqld_safe Number of processes running now: 0 120927 10:21:06 mysqld_safe mysqld restarted 120927 10:21:12 [Note] Plugin 'FEDERATED' is disabled. 120927 10:21:12 InnoDB: The InnoDB memory heap is disabled 120927 10:21:12 InnoDB: Mutexes and rw_locks use GCC atomic builtins 120927 10:21:12 InnoDB: Compressed tables …


2
innodb_file_per_tableがautoextendに設定された「エラー1114(HY000)テーブルがいっぱいです」
私は大量のデータを保持するMySQLデータベースを持っています(100-200GB-科学的測定の束)。データの大部分は1つのテーブルに格納されますSample。現在、データベースのスレーブレプリカを作成innodb_file_per_tableしています。このプロセスの利点を活用したかったのです。そこでinnodb_file_per_table、スレーブ構成に設定し、データベースのダンプをインポートしました。驚いたことに、失敗しました 5602行目でエラー1114(HY000):テーブル 'Sample'がいっぱいです ファイルSample.ibdは現在約93GBであり、パーティションで600GB以上の空き容量が利用できるため、ディスクの空き容量の問題ではありません。いずれの種類のファイルシステムの制限にも達していないようです(ext4を使用しています)。 何が原因であるか、何を調査するべきかについてのアイデアに感謝します。 更新:を使用していmysql Ver 14.14 Distrib 5.1.66, for debian-linux-gnu (x86_64)ます。 SELECT @@datadir; -- returns `/home/var/lib/mysql/` SHOW VARIABLES LIKE '%innodb_data_file_path%'; -- ibdata1:10M:autoextend df -h /home/var/lib/mysql/ 768G 31G 699G 5% /home

5
MySQLのテーブルのデータサイズとインデックスサイズを推定/予測する方法
私が発見していますテーブルの大きさを推定するための最良の方法は何か私はブログやフォーラムの多くを学んだが、任意の正確な答えを見つけることができていることのために たとえば、InnoDBエンジンを搭載したテーブルCityがあり、将来(今後1年)に100万件のレコードがあるため、この期間のそのテーブルの推定データサイズとインデックスサイズはどうなるでしょう。 mysql> desc City; +-------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------+------+-----+---------+----------------+ | ID | int(11) | NO | PRI | NULL | auto_increment | | Name | char(35) | NO | | | | | CountryCode | char(3) | NO | …
26 mysql  innodb 

7
なぜinnodb_file_per_tableを使用するのですか?
の必要性を誇張する(もちろん私見)多くの記事がありますinnodb_file_per_table。を使用するとinnodb_file_per_table、個々のテーブルをより適切に制御できるはずです。各テーブルを個別にバックアップするようにします。ただし、パフォーマンスを向上させるという主張には疑問があります。 私のテストでは、性能の差はないinnodb_file_per_tableとibdata160ギガバイトのデータベースのために。もちろん、通常のクエリを使用した簡単なテストであり、実際の複雑なクエリでは状況が異なる場合があります(これがこの質問をした理由です)。64ビットLinuxは、ext4大きなファイルを効果的に処理できます。 ではinnodb_file_per_table、より多くのディスクI / O操作が必要です。そして、これは複雑なJOINsとFOREIGN KEY制約で重要です。 テーブルスペースはsingleで共有されibdataます。個別のテーブル専用のテーブルスペースがディスクスペースを節約する方法 もちろん、を使用して各テーブルのテーブルスペースを解放する方が簡単ALTERですが、それでも(テーブルロックを伴う)高価なプロセスです。 QUESTION: DOESはinnodb_file_per_tablemysqlののより良いパフォーマンスに影響を持っていますか?はいの場合、なぜですか?

2
MySQLで「ibfk」は何を表していますか?
phpmyadminでテーブル 'photos'の外部キー制約を作成すると、後で制約の名前が 'photos_ibfk_1'になり、次の制約が 'photos_ibfk_2'などと呼ばれることがわかります。これから、[tablename] _ibfk_constraintIndexがMySQLのDB制約の規則。これは正しいです?IBFKは何の略ですか?

1
Mysql Innodb:InnoDB:エラー:最後のチェックポイントの経過時間はInnoDB:ロググループの容量を超えています
mysqlの専門知識が本当に必要です。私はmysqlの初心者であり、過去1週間にdbのサーバークラッシュが発生しています。 Ubuntuでmysql 5.1.36を使用しています。これは、デュアルコア、4GBメモリ、40GB SSDを備えた専用mysqlサーバーです。 ログエラーは次のとおりです。 120413 23:57:15 [Note] Plugin 'FEDERATED' is disabled. 120413 23:57:15 [Warning] option 'innodb-autoextend-increment': unsigned value 2000 adjusted to 1000 120413 23:57:15 InnoDB: Initializing buffer pool, size = 2.9G 120413 23:57:15 InnoDB: Completed initialization of buffer pool 120413 23:57:16 InnoDB: Started; log sequence number 0 44234 120413 …
25 mysql  innodb 

3
innodb_file_format Barracuda
もっとよく知っている人たちにいくつか質問があります。私のインスタンスのほとんどは、Barracudaをサポートしているにもかかわらず、Antelopeを実行しています。 私はいくつかの圧縮innodbテーブルをいじりたいと思っていました。私の理解では、これはBarracuda形式でのみ利用可能です。 innodb_file_formatは動的なので、バウンスせずに切り替えることができます。これを行うことの影響はありますか?私が知ることができるのは、新しいテーブルまたは後で変更されるテーブルがそのフォーマットで作成されるということです。これはすべて正しいですか? 私はすべてのテーブルを通過して変換する必要がないことを望んでいました。コーシャは、同じテーブルスペースにアンテロープとバラクーデのテーブルを共存させるのですか?それが機能していても、注意すべき点はありますか? 私がテストから読んで集めたものからの答えは次のとおりです。はい。はい。よく分かりません。 更新 この投稿以降、さまざまなインスタンスでいくつかの動的テーブルと圧縮テーブルを使用して実行していますが、問題はありません。さらに 、その時点でhttp://dev.mysql.com/doc/refman/5.5/en/innodb-file-format-identifying.htmlを読むことを怠りました。 特定のinnodb_file_formatを有効にすると、この変更は既存のテーブルではなく、新しく作成されたテーブルにのみ適用されます。新しいテーブルを作成する場合、テーブルを含むテーブルスペースには、テーブルの機能に必要な「最も早い」または「最も簡単な」ファイル形式のタグが付けられます。たとえば、Barracudaのファイル形式を有効にし、圧縮されておらずROW_FORMAT = DYNAMICを使用しない新しいテーブルを作成すると、テーブルを含む新しいテーブルスペースにはAntelopeファイル形式を使用するタグが付けられます。 したがって、Barracudaを許可した場合でも、テーブルはAntelopeとして作成されます。すべてのテーブルをrow_format動的または圧縮テーブルとして指定しない限り、混合は避けられません。 最初のBarracudaテーブルを導入するときに、完全なダンプとリロードを行う必要があることを示すものはありません(mysqlのメジャーバージョンをアップグレードするときに推奨されます)。

2
すべてのデータベースをダンプせずに、innodbファイルibdata1を縮小するにはどうすればよいですか?
InnoDBはすべてのテーブルを1つの大きなファイルに保存しますibdata1。 大きなテーブルを削除した後、ファイルはテーブルがどれほど大きくてもそのサイズを維持しています。データベース全体(合計で数百GBあります)をダンプして再インポートすることなく、そのファイルを圧縮するにはどうすればよいですか? 理由は、ドロップをまだロールバックできるからだと思います。私の場合、必要はありません。

4
InnoDBテーブルの破損をどのように識別しますか?
パーティション化されたいくつかのテーブルがあり、複製されたスレーブにいくつかのインデックスがあります。スナップショット(検証済みの安全な)を新しいスレーブにコピーし、mysqldを5.1.42から5.5.15にアップグレードしてレプリケーションを再開した後、InnoDBがクラッシュし、「Invalid pointer ...」というエラーメッセージが表示されます。 これらのエラーは、ハードウェアとO / Sが異なる2台のサーバーで発生しています。実行後: ALTER TABLE .... COALESCE PARTION n; そのテーブルの問題はなくなります。 私の質問の範囲はより広いですが、それは「InnoDBテーブルの破損をどのように識別するのですか?」です。または「InnoDBテーブルの状態をどのように評価しますか?」である「チェック表」プリクラッシュの問題を特定するために使用できるツールだけですか? 重要かどうかはわかりませんが、実行中にクラッシュが発生しました:バージョン: '5.5.15-55-log'ソケット: '/opt/mysql.sock'ポート:3306 Percona Server(GPL)、Release rel21.0、Revision 158

1
MySQLトランザクションサイズ-大きすぎますか?
頻繁に実行されるインポートプロセスがあり、それを「すべてまたは何もしない」種類の取引、つまりトランザクションにしたいのです。 多くの側面があり、インポートによって100k-1mil +のレコードが生成される場合があります。これは、数MBから数百MBのデータのペイロードに相当します。 私は一時テーブルが別のオプションであることを知っています-しかし、この方法はとても便利なようです。 コミット間で大量のデータ操作を行うこの種のプラクティスに関して注意すべき注意事項はありますか?(コミット後の一般的な書き込み/インデックス作成の負荷バーストの外側)

6
30,000,000行のテーブルでDELETEコマンドが完了しない
私はデータベースを継承しており、クリーンアップと高速化を目指しています。私は、30,000,000行を含むテーブルを持っています。その多くは、プログラマーに代わってエラーが原因で挿入されたジャンクデータです。最適化された新しいインデックスを追加する前に、テーブルをMyISAMからInnoDBに変換し、ジャンクデータを含む多くの行を削除しようとしています。 データベースはMySQL 5.0であり、サーバーへのルートアクセス権があります。最初にこれらのコマンドをAdminerで実行し、次にphpMyAdminで実行しましたが、どちらも同じ結果になりました。 私が実行しているコマンドは、 DELETE FROM `tablename` WHERE `columnname` LIKE '-%' 基本的に、ダッシュで始まるこの列のすべてを削除します-。 約3〜5分間実行され、プロセスリストを表示すると消えます。 それから走ります SELECT * FROM `tablename` WHERE `columnname` LIKE '-%' そして何百万もの行を返します。 削除ステートメントが完了しないのはなぜですか? PS、MySQL 5.0が古くなっていることに気付いています。私は、DBをMySQL 5.6 w InnoDB(おそらくMariaDB 10 w XtraDB)に移行する作業を行っていますが、それが起こるまでは、DBをそのまま使用して答えを探しています。 - 編集が削除されました。回答を参照してください。

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