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

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

2
MyISAMからInnoDBに変換する際の問題点はありますか?
MyISAMからInnoDBに移行する準備ができていますが、探すべき項目の完全なリストがあるかどうか知りたいですか?たとえばDISABLE KEYS、のマニュアルページを除いて、InnoDBテーブルで実行すると警告がスローされることについて言及しているリストはありませんALTER TABLE。変換する前に知っておくべきことです。私は自分のクエリで大丈夫だと思いましたが、どうやらそうではありません。
11 mysql  innodb  myisam 

5
不完全なmysqldump
mysqldumpを実行してデータベーススナップショットを作成しようとしていますが、エラーを報告せずに途中でランダムに停止します。私のデータベースは比較的小さく(約100MB)、InnoDBを使用しています。 私はそれを次のように実行しています: mysqldump --force --single-transaction --quick --user myuser --password=mypass -h mydatabasehost mydb > /tmp/snapshot.sql 終了コードを確認すると0が報告されます。 私のバージョン:mysqldump Ver 10.13 Distrib 5.1.52、redhat-linux-gnu(i386) 同様の投稿や公式のバグレポートもいくつか見ましたが、どちらのソリューションも当てはまらないようです。 mysqldumpで完全なデータベーススナップショットを取得するにはどうすればよいですか? 編集:私のデータベースは現在AmazonのRDSにあります。

2
InnoDBのテーブル作成エラー:「行サイズが大きすぎます」
レポートを生成するために、正規化されたデータベース構造を一時テーブルにフラット化するエンジニアが何人かいます。列は次のように指定されていますTEXT NOT NULL(「なぜ彼らはそれをしているのですか?」 Linuxでは、MySQL 5.1.48 Community RHEL5とInnoDBプラグイン1.0.9を使用しています。 MyISAMを使用しているときに、最大列または最大行長のテーブルサイズ制限に遭遇したことはありません(調査中に、2598で最大列制限に達しました(2599番目がエラー1117の原因になります)。InnoDBでは制限に達しています。これらの制限は、テーブル(データ挿入なし)として: エラー1118(42000)1行目:行サイズが大きすぎます。使用されるテーブルタイプの最大行サイズはBLOBを含まない8126です。一部の列をTEXTまたはBLOBに変更する必要があります 以下に対する答えを探しています。 ロットのv / v / b / t列を使用する場合に、行サイズを特定するための詳細な式は何ですか?varchar(N)列(Nは1から512の間)、UTF8文字セット(* 3)、および失敗するまでテーブルに必要な数の列を使用して、いくつかの異なる形式を試しました。私が試したコンボはどれも、実際のテスト結果と一致する値を示していません。 行サイズを計算するときに、他にどのような「オーバーヘッド」を考慮する必要がありますか? varchar(109)列を持つテーブルの作成からvarchar(110)列に変更すると、エラーメッセージが8126から65535に変わるのはなぜですか?
11 mysql  innodb 

3
エラー-関数 'innodb'はすでに存在します
MyISAMテーブルの一部をINNODBに変換することを検討しています。MySQL 5.6(apt-getが5.5からアップグレードされた)でUbuntu 14.04サーバーを実行し、4コア/ 8スレッドCPUで32G ram。最初に問題がありました... could not open single-table tablespace file .\mysql\innodb_index_stats.ibd after restart of MySQL そして Error: Table "mysql"."innodb_table_stats" not found. Rolandoの投稿されたアドバイスに従いましたが、DBがクラッシュしたり、巨大なerror.logを作成したりすることはありません。 (上記の問題はなくなり、主要なイベントについてのみ説明しています) 何かをINNODBに変換する前に、次のエラーについて心配しています。私が読んだものからFederatedは無視できます。下の2行目(この投稿の件名も)は私に関するものです 2014-05-19 01:50:57 30950 [Note] Plugin 'FEDERATED' is disabled. 2014-05-19 01:50:57 30950 [ERROR] Function 'innodb' already exists 2014-05-19 01:50:57 30950 [Warning] Couldn't load plugin named 'innodb' …
11 mysql  innodb 

2
メタデータロックを待機しているため、テーブルを削除できません
1つのテーブルを削除しようとしていますが、それがハングアップしています。「SHOW PROCESSLIST」コマンドを見ると、「メタデータのロックを待っています」と表示されています。その特定のテーブルで操作を実行することもできません。誰かがそれを解決する方法を知っていますか?

2
mysqlで外部キーにRESTRICTを使用する方法
のデータベース構造 CREATE TABLE Country ( name varchar(40) NOT NULL, PRIMARY KEY (name) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE City ( name varchar(40) NOT NULL, PRIMARY KEY (name) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE Map ( country varchar(40) NOT NULL, city varchar(100) NOT NULL, PRIMARY KEY (country,city), FOREIGN KEY (country) REFERENCES …

1
MySQLの行サイズエラー
MacbookでMySQLサーバーを実行しています(テスト用)。バージョンはHomebrewの5.6.20です。「行サイズが大きすぎます」というエラーが発生し始めましたが、このテストケースまで減らすことができました。テーブル: mysql> describe test; +-------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | stuff | longtext | YES | | NULL | | +-------+----------+------+-----+---------+----------------+ テーブルのステータス: mysql> show table status where …
11 mysql  innodb 

5
テーブルを作成できませんが、テーブルが存在しません
私はこれらの手順を使用してテーブルを作成します。テーブルmy_userはすでに存在しますが、データベースから何とか消えてしまいましたmy_db。 mysql> USE my_db; mysql> DROP TABLE my_user; mysql> ERROR 1051 (42S02): Unknown table 'my_user' mysql> CREATE TABLE my_user (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(255), group_id VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB; mysql> ERROR 1005 (HY000): Can't create table 'my_db.my_user' (errno: …
11 mysql  innodb 

1
MySqlDumpのDISABLE KEYSはインポートに影響しません
Inno-Tablesでのインポート速度に関する私の前の質問のフォローアップがあります(驚き!)。 シナリオ 私は妥当な時間内にローカルの開発用マシンにいくつかのbig *データベースダンプをインポートしようとしました。KEYテーブルに接続されている多くのがボトルネックになっていますが、それでもライブシステムにとって重要です。 上記の質問をした後の私のアプローチはKEY ...、ダンプからステートメントを削除し、キーをインポートして再度追加することでした。 しかし、現在のダンプを編集してローカルにインポートすることがよくあり、これらの面白い "コメント"に遭遇しました(- disable/enable keys行)。 -- -- Dumping data for table `monster` -- LOCK TABLES `monster` WRITE; /*!40000 ALTER TABLE `monster` DISABLE KEYS */; INSERT … INSERT … INSERT /*!40000 ALTER TABLE `monster` ENABLE KEYS */; UNLOCK TABLES; しかし、実際にはこれらの「コメント」は条件付きのMySql-Statementsです それは私にとってはニュースでしたが、出力フォームを考えると、mysql --versionすべてが私には問題なく見えます。 mysql Ver 14.14 Distrib …

3
InnoDBインポートのパフォーマンス
約1000万行(または7GB)からなる非常に大きなInnoDBテーブルを一括インポートするのに苦労しています(これは、これまでに作業した中で最大のテーブルです)。 Innoのインポート速度を改善する方法を調査しましたが、今のところ、私のセットアップは次のようになっています。 /etc/mysql/my.cnf/ [...] innodb_buffer_pool_size = 7446915072 # ~90% of memory innodb_read_io_threads = 64 innodb_write_io_threads = 64 innodb_io_capacity = 5000 innodb_thread_concurrency=0 innodb_doublewrite = 0 innodb_log_file_size = 1G log-bin = "" innodb_autoinc_lock_mode = 2 innodb_flush_method = O_DIRECT innodb_flush_log_at_trx_commit=2 innodb_buffer_pool_instances=8 import is done via bash script, here is the mysql code: SET …

1
MySQLインデックスの作成がテーブルで失敗する
更新:tl; dr:問題はMySQLがTMPDIRインデックスの作成時にを使用することでした。そして私TMPDIRはディスク容量が足りなくなった。 元のQ: InnoDBテーブルにインデックスを追加しようとしていて、を取得していtable is full errorます。十分なディスク容量があり、MySQL構成にはfile-per-table = 1があります。テーブルデータは85GBで、インデックスは約20GB-30GBであり、それよりもはるかに多くのディスク容量があると思います。私はext3も使用しているので、OSの観点からはファイルサイズの制限に問題はないと思います。 ログに記録されたエラーは次のようになります。 140616 13:04:33 InnoDB: Error: Write to file (merge) failed at offset 3 1940914176. InnoDB: 1048576 bytes should have been written, only 970752 were written. InnoDB: Operating system error number 0. InnoDB: Check that your OS and file system support files …
10 mysql  innodb  index 

1
トランザクションにSelectステートメントを置く
これら2つのクエリの違いは何ですか。 START TRANSACTION; SELECT * FROM orders WHERE id=1; UPDATE orders SET username='John' WHERE id=1; COMMIT; そしてトランザクションなし: SELECT * FROM orders WHERE id=1; UPDATE orders SET username='John' WHERE id=1; SELECTトランザクション内での影響は何ですか? 場合はDELETE FROM orders WHERE id=1、右の後に別のセッションから呼び出されたSELECT両方のケースでは、ときそれが処理されるのですか?

4
mysqldumpを使用して500GBデータベースの高速バックアップと復元を増やす方法は?
500GBのデータベースAサイズがあります。データベースAのテーブルには、MyISAMテーブルとINNODBテーブルの両方が含まれています。MyISAMテーブルはマスターテーブルで、Innodbテーブルはメイントランザクションテーブルです。 mysqlダンプを使用してバックアップと復元を行うと、長時間または数日で終了します。 max_allowed_pa​​cket = 1G foreign_key_checks = 0 auto_commit =オフ

2
保留中のトランザクションのあるMySQLテーブルの削除
MySQLで保留中のトランザクションがあるInnoDBテーブルまたはデータベースを(できればファイルシステムレベルで)削除する方法はありますか? どうした: MySQL 5.5.28を使用して実行LOAD DATA INFILE…し、巨大なデータセット(3億行)をInnoDBテーブルにインポートしました。set autocommit = 0;以前は使用していませんでした。残念ながら、mysqldインポートの途中で中止されました。 を再起動mysqlすると、トランザクションがロールバックされ、次のようなメッセージがシステムログに記録されます。 mysqld_safe [4433]:121212 16:58:52 InnoDB:1つのアクティブなトランザクションが完了するのを待機しています 問題は、ロールバックが25時間を超えて実行されている間 mysqld、ソケット接続を受け入れていないことです。 /var/lib/mysql/*このマシンには他にもいくつかのInnoDBデータベース/テーブルがあるため、削除して最初から始めることはできません。ただし、問題のあるテーブルは、別のデータベース内の唯一のテーブルです。後ですべてのデータを再インポートできるため、テーブル全体またはデータベース全体を削除しても問題ありません。

2
1時間あたり数千回の挿入を処理するようにMySQL Innodbを構成するにはどうすればよいですか?
非常にトラフィックの多いWebサイトを使用しており、毎時間数千の新しいレコードが挿入される可能性があります。 この1つのエラーがサイトに障害をもたらしています。 PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction: INSERT INTO {location_instance} (nid, vid, uid, genid, lid) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4); Array ( [:db_insert_placeholder_0] => 1059 [:db_insert_placeholder_1] => 1059 [:db_insert_placeholder_2] => 0 [:db_insert_placeholder_3] => cck:field_item_location:1059 [:db_insert_placeholder_4] => 1000 ) MySQLがこのタイプの負荷を処理できなかった場合、私は非常に驚きます。それで、私の質問は、データベースの問題ですか?これだけのトラフィックを処理できるようにMySQLを構成するにはどうすればよいですか? …

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