SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
こんにちは、みかみです。 今日のクラスメソッドのAWSおみくじ、RDS(t1.micro)でしたー!(昨日は Aurora!@@v はじめに 前職@アプリ開発時、MySQL のクエリチューニングをさせていただく機会がありました。 ユーザー入力のキーワードで全文検索 → 見つかったレコードを返すのですが、所要時間、約3分。。 Apache タイムアウトして画面真っ白。。。(泣きそうでした><。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリの
トラブルシューティングを支援するために、InnoDB は、特定の状況で InnoDB 標準モニターの出力を一時的に有効にします。 詳細は、セクション15.21「InnoDB のトラブルシューティング」を参照してください。 InnoDB モニターの出力は、タイムスタンプとモニター名を含むヘッダーで始まります。 例: ===================================== 2014-10-16 18:37:29 0x7fc2a95c1700 INNODB MONITOR OUTPUT ===================================== ロックモニターでは、追加のロック情報が付加された同じ出力が生成されるため、InnoDB 標準モニターのヘッダー (INNODB MONITOR OUTPUT) はロックモニターにも使用されます。 innodb_stat
DATE、DATETIME、および TIMESTAMP 型は関連しています。 このセクションでは、これらの特徴、似ている点、および異なる点について説明します。 MySQL は、セクション9.1.3「日付リテラルと時間リテラル」で説明している複数の形式で、DATE、DATETIME、および TIMESTAMP 値を認識します。 DATE および DATETIME 範囲の説明では、「サポートされている」とは、以前の値は機能するが、保証はないということを意味します。 DATE 型は、日付部分を含むが時間部分は含まない値に使用されます。 MySQL は、DATE 値を'YYYY-MM-DD'形式で取得して表示します。 サポートしている範囲は '1000-01-01' から '9999-12-31' です。 DATETIME 型は、日付と時間の両方の部分を含む値に使用されます。 MySQL は、DA
SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
Safer Rails database migrations with Soundcloud's Large Hadron Migrator … and check why 5600+ Rails engineers read also this Safer Rails database migrations with Soundcloud’s Large Hadron Migrator When I first started using Rails years ago I fell in love with the concept of database migrations. Perhaps because at the time I was working on commercial projects in C# which lacked this and I could fee
mysql_install_db は MySQL データディレクトリを初期化し、システムテーブルを作成します (システムテーブルがない場合)。また、InnoDB テーブルの管理に必要な、システムのテーブルスペースおよび関係するデータ構造体も初期化します。MySQL 5.6.8 では、mysql_install_db は Perl スクリプトで、Perl がインストールされた任意のシステムで使用できます。5.6.8 より前ではシェルスクリプトで、Unix プラットフォームでのみ使用可能です。 MySQL 5.6.8 以降では、mysql_install_db は UNIX プラットフォーム上で、my.cnf という名前のデフォルトオプションファイルを基本インストールディレクトリに作成します。このファイルは my-default.cnf という名前の配布パッケージに含まれるテンプレートから作成
自動初期化されたカラムは、カラムに値を指定しない挿入行に対して現在のタイムスタンプに設定されます。 自動更新されたカラムは、行内のほかのカラムの値がその現在の値から変更されると、現在のタイムスタンプに自動的に更新されます。 自動更新されたカラムは、ほかのすべてのカラムがその現在の値に設定されていれば、変更されないまま保持されます。 ほかのカラムが変更したときに、自動更新したカラムが更新しないようにするには、明示的にこれを現在の値に設定します。 ほかのカラムが変更しない場合でも、自動更新カラムを更新するには、明示的にこれを必要な値に設定します (たとえば CURRENT_TIMESTAMP に設定します)。 また、explicit_defaults_for_timestamp システム変数が無効になっている場合は、NULL 値を許可するように NULL 属性で定義されていないかぎり、NULL
この記事はMySQL Casual Advent Calendar 2016の22日目です。 innodb_thread_concurrencyを最近のデフォルトである0と論理CPUコア数の2倍の48に設定した場合に観測出来た小ネタです。ベンチマークのtpsを載せていますが、1回しか取得してないので、割と誤差があると考えられるため、目安程度に見てください。 環境 CentOS 6.6(2.6.32-504.12.2.el6.x86_64) Xeon E5-2643 v2 3.5GHz x 2(2P12C24T) Memory 64GB (8GB x 8, DDR3 1866MHz) HDD SAS 300GB x 2 10k rpm(RAID1 BBU付き) FileSystem ext4 ベンチマークのデータ量はinnodb_buffer_pool_sizeに収まる量 メモリで殴るような
【MySQL5.6以上】Webエンジニア向け!メンテなしで500万件レコード入りのテーブルにINDEXを張る実行時間の目安RailsMySQLActiveRecordInnoDB レコード数が増えていくと、INDEXを張りたくなりますよね。 INDEXのあり/なしでレスポンスが大きく変わります。 でも、「サービスを止めたくない!」 そんなWebエンジニアの方のために、メンテなしでテーブルにINDEXを張る方法を・・・。 答えは簡単。 データベースを「MySQL5.6以上」にすることです。 MySQL5.6からオンラインでのDDLが可能となりました。 つまり、「オンラインでINDEXを張ること」ができます!! 意外と知られていない・・・?! 参考: CREATE INDEX、ADD INDEX項目 MySQL 5.6 リファレンスマニュアル 14.11.1 オンライン DDL の概要 検証環
ActiveRecordからutf8mb4を扱えない主な理由 ActiveRecordのstring型カラムがvarchar(255)で定義されるので、utf8mb4ではインデックスのキープレフィックスが767byteを超えてしまう。 ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes この問題をMySQLの設定とRailsへのパッチで解決する。 MySQLの設定 文字コードをutf8mb4で運用するために、インデックスのキープレフィックスを拡張する。 innodb_large_prefixをenableにする 1を有効にするために、innodb_file_formatをBarracudaにする 1を有効にするために、innodb_file_per_tableをenableにする innod
リリースが遅れた理由を日本オラクル MySQL Global Unit Asia Pacific & Japan担当 MySQL Sales Consulting Managerの梶山隆輔氏に訊ねると「5.6のリリース候補版は、昨年9月にサンフランシスコで開催されたイベント『MySQL Connect』のタイミングで配布が開始されました。このリリース候補版を利用したユーザーからのフィードバックをきっちりと反映した結果、今回のタイミングでのリリースとなりました」とのこと。なんらか製品に大きな問題があって遅れたのではなく、フィードバックをしっかりと取り込んで品質的にも納得いくものに仕上げた結果ということだ。 このように、ユーザーからのフィードバックも取り込んで、ある意味じっくりと作り込まれたのがMySQL 5.6。そのバージョンアップのポイントは、5つあると梶山氏は言う。その1つがオプティマイ
こんにちは、せーのです。今日は昨日、今日と2日間にわたって行われている「Open Source Confference」の北海道版、「OSC Hokkaido 2015」よりMySQL5.7に関する最新情報を速報としてレポート致します。スピーカーはOracleの梶山 隆輔氏。 レポート 2015年はMySqlに関して大事な数字が並ぶ年 Sun MicrosoftがOracleに買収されて5年 MySqlのストレージエンジン機能のデフォルトInnoDB(InnoBase)がOracleに買収されて10年 [日本MySQLユーザー会]が出来て15年 MySQLが世に出てから20年 枯れた印象もあるが新しいこともやっている MySQL Cluster 7.4GA データベースの中にFirewallを持つMySQL Enterprise Firewall MySQL 5.7。5.6より2倍速い、と
はじめに 今日は新機能のお知らせです。 Amazon RDS MySQL now supports point-and-click upgrade from MySQL 5.6 to 5.7 Amazon RDS for MySQLで、DBエンジンを簡単に5.6から5.7にアップグレードできるようになりました。具体的にはAWS管理コンソールからちょいちょいっとクリックするだけでアップグレードされます。 やってみた 以下のようなMySQL 5.6エンジンのAmazon RDS for MySQLがあります。ちなみにOption Groupは"default:mysql-5-6"、Parameter Groupは"default.mysql5.6"です。 [Instance Actions]-[Modify]をクリックします。 Modify画面の、[DB Engine Version]で、My
SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
この章では、MySQL のパフォーマンスを最適化する方法について説明し、例を示します。 最適化には、いくつかのレベルでの構成、チューニング、およびパフォーマンスの測定が含まれます。 業務の役割 (開発者、データベース管理者、または両方の組み合わせ) に応じて、個々の SQL ステートメント、アプリケーション全体、単一のデータベースサーバー、または複数のネットワーク接続されたデータベースサーバーのレベルで最適化できます。 プロアクティブにパフォーマンスを事前に計画する場合や、または問題の発生後に、構成やコードの問題のトラブルシューティングを行う場合があります。 CPU やメモリーの使用を最適化することで、スケーラビリティーを向上し、データベースを低下させず、より多くの負荷を処理させることもできます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く