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

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


7
大規模なデータベースのmysqldumpを最適化するにはどうすればよいですか?
57テーブルで最大2GBのInnoDBデータベースを使用するsymfonyアプリケーションがあります。データベースのサイズの大部分は、単一のテーブル(〜1.2GB)にあります。現在、mysqldumpを使用してデータベースを夜間にバックアップしています。 コムキャスト接続のため、多くの場合、手動でダンプを実行している場合、ダンプが完了する前にサーバーへの接続がタイムアウトし、ダンプを再実行する必要があります。[現在、毎晩ダンプを実行するcronを実行しています。これは、手動で実行するダンプ用です。] 接続タイムアウトの問題のダンプを高速化する方法はありますが、サーバーがこのプロセスで占有される時間を制限する方法はありますか? ところで、私は現在、この問題を解決するためにデータベース全体のサイズを縮小することに取り組んでいます。

4
mysql innodb_buffer_pool_sizeの大きさはどれくらいですか?
私は、約5GBのサイズのInnoDBテーブルのみを持つビジーなデータベースを持っています。データベースはSSDディスクを使用してDebianサーバーで実行され、最大接続数= 800に設定しました。1秒あたりの平均クエリは約2.5Kです。そのため、可能な限り最大の接続を確保するために、メモリ使用量を最適化する必要があります。 私は、innodb_buffer_pool_sizeが合計メモリの最大%80であるべきだという提案を見てきました。一方、私はチューニングプライマースクリプトからこの警告を受け取ります。 Max Memory Ever Allocated : 91.97 G Configured Max Per-thread Buffers : 72.02 G Configured Max Global Buffers : 19.86 G Configured Max Memory Limit : 91.88 G Physical Memory : 94.58 G 現在のinnodb変数は次のとおりです。 | innodb_adaptive_flushing | ON | | innodb_adaptive_hash_index | ON | | innodb_additional_mem_pool_size | …
170 mysql  innodb 

5
MySQLに複数のコアを使用させることは可能ですか?
単一のコア以上を使用しない専用のMySQLサーバーをいくつか紹介しました。私はMySQLのDBAよりも開発者なので、助けが必要です セットアップ サーバーは、OLAP / DataWarehouse(DW)タイプのロードでは非常に大きくなります。 プライマリ:96GB RAM、8コア+シングルRAID 10アレイ テスト:4コアの32GB RAM 最大のDBは540 GBで、合計は約1.1TBで、ほとんどがInnoDBテーブルです Solaris 10 Intel-64 MySQL 5.5.x 注:最大のDBはOLTP DRサーバーから複製されたものであり、DWはこれからロードされます。完全なDWではありません。6か月から6週間で終了するため、OLTP DBよりも小さくなります。 テストサーバーでの観察 3つの個別の接続 それぞれに同時(および異なる)があります ALTER TABLE...DROP KEY...ADD INDEX 3つのテーブルには250万行、380万行、450万行があります CPU使用率は最大25%になり(1つのコアが最大になります)、それ以上はなりません 3回のALTERには12〜25分かかります(最小の1つに4.5分かかります)。 ご質問 複数のコアを使用するには、どのような設定またはパッチが必要ですか? つまり、なぜMySQLは利用可能なすべてのコアを使用しないのですか?(他のRDBMSと同様) レプリケーションの結果ですか? その他の注意事項 RDBMS「スレッド」とOS「スレッド」の違いを理解しています 私はどんな形の並列性についても尋ねていません InnoDBとスレッドのシステム変数のいくつかは次善の策です(クイックウィンを探しています) 短期的には、ディスクレイアウトを変更できません 必要に応じてOSを調整できます 最小のテーブル上の単一のALTER TABLEには4.5分かかります(IMOに衝撃を与えます) 編集1 innodb_thread_concurrencyは両方で8に設定されます。はい、間違っていますが、MySQLが複数のコアを使用することはありません innodb_buffer_pool_sizeはプライマリで80GB、テストで10GBです(別のインスタンスはシャットダウンされます)。これは今のところ大丈夫です。 innodb_file_per_table = ON 編集2 innodb_flush_log_at_trx_commit …

5
MySQL innodb変数「innodb_log_file_size」を安全に変更する方法は?
だから、私はInnoDBをチューニングするのはかなり新しいです。MyIsamからInnoDBに(必要に応じて)テーブルをゆっくりと変更しています。innodbに約100MBあるので、innodb_buffer_pool_size変数を128MB に増やしました。 mysql> show variables like 'innodb_buffer%'; +-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ | innodb_buffer_pool_size | 134217728 | +-------------------------+-----------+ 1 row in set (0.00 sec) innodb_log_file_size値を変更しようとしたとき(mysqlのinnodb構成ページのコメントの my.cnfの例では、ログファイルのサイズをバッファーサイズの25%に変更します。したがって、my.cnfは次のようになります。 # innodb innodb_buffer_pool_size = 128M innodb_log_file_size = 32M サーバーを再起動すると、次のエラーが表示されます。 110216 9:48:41 InnoDB:バッファープールの初期化、サイズ= 128.0M 110216 9:48:41 InnoDB:バッファープールの初期化の完了 InnoDB:エラー:ログファイル./ib_logfile0は異なるサイズ0 5242880バイト InnoDB:で指定されたものより.cnfファイル0 33554432バイト! 110216 9:48:41 …
105 mysql  innodb  myisam  logs 

4
MySQLは巨大な(32 GB)SQLダンプをより速くインポートする方法ですか?
この巨大な32 GBのSQLダンプがあり、MySQLにインポートする必要があります。そのような巨大なSQLダンプをインポートする必要はありませんでした。私はいつもやった: mysql -uroot dbname < dbname.sql 時間がかかりすぎています。約3億行のテーブルがあり、約3時間で150万行になります。そのため、全体が600時間(24日間)かかり、実用的ではないようです。だから私の質問は、これを行うより速い方法はありますか? 詳細情報/調査結果 テーブルはすべてInnoDBであり、外部キーは定義されていません。ただし、多くのインデックスがあります。 元のサーバーとDBにアクセスできないため、新しいバックアップを作成したり、「ホット」コピーなどを実行したりできません。 ここでinnodb_flush_log_at_trx_commit = 2提案されている設定では、(明らかに見える/指数関数的に)改善されないようです。 (MySQLのワークベンチからの)輸入時のサーバの統計情報:https://imgflip.com/gif/ed0c8。 MySQLバージョンは5.6.20コミュニティです。 innodb_buffer_pool_size = 16Mおよびinnodb_log_buffer_size = 8M。これらを増やす必要がありますか?

1
mysqlでibdataのサイズを縮小する最良の方法は何ですか?
私は、ibdataファイルのサイズが日々増加する運用サーバーをいくつか持っています。 すでに290GBのスペースを消費しています。 サーバー内のテーブルの大部分はInnoDBであり、高い読み取りおよび書き込み要求があります。 ログファイルのサイズも増加します。テーブルには大量のデータがあります。 両方のサイズの増加をどのように制御できますか? 私は使用していませんinnodb_file_per_table。
63 mysql  innodb 

3
固定サイズのフィールドでCHARとVARCHARを使用すると、パフォーマンスにどのような影響がありますか?
MD5ハッシュを格納するインデックス列があります。したがって、列には常に32文字の値が格納されます。何らかの理由で、これはcharではなくvarcharとして作成されました。データベースを移行してcharに変換する手間をかける価値はありますか?これは、InnoDBを使用したMySQL 5.0にあります。



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

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 …

2
InnoDB:エラー:テーブル「mysql」。「innodb_table_stats」はmysql 5.6へのアップグレード後に見つかりません
5.5からmysql 5.6にアップグレードしたところ、起動時にログにこのようなメッセージが散らばっています ここで解決策を見つけましたが、公式ではないようです。 http://forums.mysql.com/read.php?22,578559,579891#msg-579891 2013-12-06 21:08:00 7f87b1d26700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found. 2013-12-06 21:08:00 7f87b1d26700 InnoDB: Recalculation of persistent statistics requested for table "drupal"."sessions" but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2013-12-06 21:08:07 7f903c09c700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found. …

1
断続的なMySQLが「致命的なエラー:バッファプールにメモリを割り当てられません」というエラーでクラッシュする
編集時に追加、2013-05-29:これは長い質問と議論であるため、質問と解決策の簡単な要約を以下に示します。小さなLinuxサーバー(1 GBのメモリ)でMySQLとApacheを実行する際に問題が発生しました。Apacheはより多くのメモリを要求し続け、結果として、OSは常にメモリを回復するためにMySQLを殺しました。 解決策は、ApacheをLighttpdに置き換えることでした。それを行った後、サーバーでのメモリ使用は数か月間完全に安定しており、いかなるクラッシュもありませんでした。編集の終わり 私は小さな仮想サーバーの初心者システム管理者です。サーバーの主な機能は、PHPで書かれたオープンソースのMoodleコース管理システムソフトウェアを実行することです。データベース(この場合はMySQL)とWebサーバー(この場合はApache)に依存しています。 サーバーは、1 GBのメモリと200 GBのディスク、カーネルバージョン2.6.18-308.8.2.el5xenを備えた64ビットCentOSリリース5.8(最終)を実行しています。MySQLバージョンは、Linux(x86_64)でreadline 5.1を使用する場合、Ver 14.14 Distrib 5.5.25です。 MoodleソフトウェアはMySQLのそれほどヘビーユーザーではないと思います。現在、約10人の教師のみがアクセスでき、データベース全体をbzip2でダンプおよび圧縮すると、結果のダンプのサイズは1 MB未満になります。 数ヶ月前にシステムをセットアップしました。Apacheサーバーはこれまでずっと安定していますが、MySQLは数回クラッシュしました。Webから最適な構成について学習しようとしましたが、前回/etc/my.cnfファイルを変更したとき/usr/share/doc/mysql55-server-5.5.25/my-large.cnfは、MySQLに付属のファイルを例として使用しました。このファイルは、512 MBのメモリを搭載したシステム向けであると述べているため、メモリ関連の構成パラメータを使用することはこのシステムにとって安全だと考えました。(私は以前はるかに小さい数字でMySQLのメモリー関連のパラメータを設定していた、と私はそれがクラッシュにつながっているかもしれないと思ったクラッシュはまだ発生している間、システムはより速くなりました少なくともである。)これらは、現在の内容です/etc/my.cnf: # /etc/my.cfg # The main and only MySQL configuration file on [WEBSITE ADDRESS REDACTED]. # Last updated 2012-09-23 by Teemu Leisti. # Most of the memory settings are set to be the same as the …

5
重いInnoDBワークロードに合わせてMySQLをどのように調整しますか?
主にInnoDBテーブルを持つ本番OLTPシステムを想定 システムの調整ミス/構成ミスの一般的な症状は何ですか? どの設定パラメーターをデフォルトから最もよく変更しますか? 問題が発生する前に、潜在的なボトルネックをどのように見つけますか? アクティブな問題をどのように認識してトラブルシューティングしますか? 特定のstatus変数と診断の詳細を示す逸話をいただければ幸いです。

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