サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
MySQLの機能のひとつ、AUTOCOMMIT(オートコミット)が有効/無効でどのように挙動が変わるのか、今イチ理解できていない。やっぱり、一回書いておかないと。 前提として、トランザクションセーフであるInnoDBテーブルが対象であること(MySAMはトランザクションをサポートしていない)。なお、この記事内における「暗黙のうちに、暗黙的」という表現は「自動的に」と同義語と 捉えるものとする。(・・・と勝手に決めます) AUTOCOMMIT(オートコミット)有効/無効の違い AUTOCOMMIT(オートコミット)を有効にするか無効にするかにより、トランザクションの開始/終了の方法が変化する。 オートコミットを有効にした場合(デフォルトで有効) この場合のトランザクションは単一のSQL文実行時に暗黙のうちに、またはSTART TRANSACTION文によって明示的に開始される。 この中でST
MySQLはとても気ぃつかい屋さんである。我々が投げる多少あいまいな指示も頑張って解釈し、なんとか文句を言わずに実行してみようと挑戦してみてくれる。 今日はそんなMySQLがケナゲに解釈してくれる自動変換について紹介しようと思う。この自動変換、ケナゲなMySQLの奥ゆかしさ故、出した指示と異なる動作をされたことに気がつかないことがある。ここで紹介する6つの自動変換をしっかり脳ミソにたたき込んでおけば、無用なトラブルにハマる時間も減るかもしれない。 1.[数値] 範囲外の数値は頭を押さえつけられる intやsmallint、bigintなどの数値型には、扱える範囲が決まっている。例えばint型なら最大21億ちょっとだ(unsignedの場合は43億弱)。これより大きい数字を登録するよう指示を出すとMySQLはどうするか。そう、頑張って入れられるところまで入れてくれるのである。「入れられるとこ
MySQL に限らず、SQL のNULL の仕様には何回か「えっ」と驚くことがあったのでメモしておこうと思います。5.1 版の日本語マニュアルがなかったものについては、4.1 のマニュアルを参照しました。 そもそもNULL は何を意味するか NULL は未定義または、不明を意味する。「電話番号を持たない」ということを表現する場合は、NULL ではなく、空の文字列を使う。 NULL 値というものを SQL 初心者はよく混乱します。SQL 初心者は、多くの場合、NULL が空文字 "" と同じであると考えてしまいます。これは違います。たとえば、以下のステートメントは完全に別のものです。 mysql> INSERT INTO my_table (phone) VALUES (NULL); mysql> INSERT INTO my_table (phone) VALUES (""); どちらのス
夏休みまだ取れてないよ~・・・夏終わっちゃうよ~・・・みなさん、こんちには nakamura です。 コンテンツ DB への更新・参照等は日々使うので割りと覚えやすいですが、パフォーマンスチューニング等行う際にテーブルや MySQL 自体のステータスを取得する SQL ってしょっちゅう使うわけではないので結構忘れがちですよね~。今日はその辺りの SQL 文を備忘録も兼ねてまとめてみようと思います。 テーブル関連 テーブルの一覧を取得。 show tables; テーブル構造を取得。 describe table_name; ; describe にはショートカットが用意されています。 desc table_name; CREATE TABLE 文を取得。 show create table table_name; テーブルの状態を取得。 ; 全てのテーブルを表示 show table st
データベースの運用で避けられないのが、ロック競合によって起こるシステムトラブルへの対応です。「2時までに終わるはずのバッチ処理が朝になっても終わっていない」とか「負荷が高いわけでもないのにシステムが無応答になっている」といったトラブルが発生したとき、DBエンジニアはそれがロック競合によるものなのかどうかを切り分けて、適切に対処しなければなりません。 これまでInnoDBはロック競合に対してほとんど打つ手がなかったのですが、最近ようやく対処方法がでてきました。今日はその手順を確認していきたいと思います。 前提 今回ご紹介する手順は、MySQLの以下のバージョンを対象にしています。 MySQL 5.1+InnoDB Plugin 1.0 MySQL 5.4 いきなりハードルを上げてしまって申し訳ありませんが、バージョン5.0以下や素の5.1では使えませんのでご注意ください。以降の実行例はすべて
ちょっと遅めの夏休みをもらって八丈島に行ってきました nakamura です!いい所すぎて危うくそのまま移住するところでした。 データベースの移行をする際みなさんどんな流れで作業しているでしょうか。コマンドラインでダンプを取って、サイズが大きかったら gzip で圧縮して、WinSCP でそれをローカルに落としてきて、それをまた別のサーバにアップロードして・・・・なんて事してたりしませんか? シェルのパイプやリダイレクトをうまく使ってあげれば、この辺りはコマンド一発でいけちゃったりするのです。今日はそんなコマンド例のご紹介です。 実際によく使うコマンドの例を箇条書きで。 とりあえずダンプの結果をそのまま圧縮する。 mysqldump -udb_user db_name -pdb_pass | gzip > db_name.dump.sql.gz 特定の文字列を置換した上で圧縮する。 MT
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く