タグ

2011年3月30日のブックマーク (6件)

  • MySQLのAUTOCOMMIT(オートコミット)覚え書き – OpenGroove

    MySQLの機能のひとつ、AUTOCOMMIT(オートコミット)が有効/無効でどのように挙動が変わるのか、今イチ理解できていない。やっぱり、一回書いておかないと。 前提として、トランザクションセーフであるInnoDBテーブルが対象であること(MySAMはトランザクションをサポートしていない)。なお、この記事内における「暗黙のうちに、暗黙的」という表現は「自動的に」と同義語と 捉えるものとする。(・・・と勝手に決めます) AUTOCOMMIT(オートコミット)有効/無効の違い AUTOCOMMIT(オートコミット)を有効にするか無効にするかにより、トランザクションの開始/終了の方法が変化する。 オートコミットを有効にした場合(デフォルトで有効) この場合のトランザクションは単一のSQL文実行時に暗黙のうちに、またはSTART TRANSACTION文によって明示的に開始される。 この中でST

    kaza13
    kaza13 2011/03/30
  • MyISAMからInnoDBへ切り替えるときの注意点

    MySQLを使い始めて間もない人がよく陥る罠の中に、気づくと使ってるストレージエンジンがMyISAMだった!ということがある。デフォルトのストレージエンジンはMyISAMなので、MySQLに詳しくない人たちが比較的陥りやすい罠なのだ。そもそもストレージエンジンという概念自体がMySQL独自のものなので仕方のない話である。MyISAMは素晴らしいストレージエンジン(たとえばこのYahoo!の中の人による投稿で言われているように)であるが、長所もあれば短所もある。例えば、 トランザクション対応ではない。 クラッシュセーフではない。 更新と参照が入り乱れた場合の同時実行性能がよくない。 テーブルが大きく(数億行とか)なるとINSERTの性能が劣化する。 などなど。特に前者の2つが問題で、アトミックな操作が必要なところでロジックを実装出来なかったり、サーバがクラッシュした時にデータがお亡くなりにな

    MyISAMからInnoDBへ切り替えるときの注意点
    kaza13
    kaza13 2011/03/30
  • phpMyAdmin で MySQL のストレージエンジンを MyISAM から InnoDB に変更する方法

    phpMyAdmin で MySQL のストレージエンジンを MyISAM から InnoDB に変更する具体的な方法です。ここでは XAMPP 環境(Windows XP + MySQL 5.0 + phpMyAdmin 2.11.4)で試したもので紹介します。 このエントリーは以下の記事に触発されて書いたものです。 techknow.yagishita.net - MTを使ったサイト構築テクニック (2): ネタフルにおける再構築チューニング 1.my.cnf を変更する ストレージエンジンを MyISAM から InnoDB に変更するには、テーブル単位で変更します。phpMyAdmin の GUI によるストレージエンジンの変更方法は、 変更したいテーブル名をクリック 上部タブの「操作」をクリック 「テーブルオプション」の「ストレージエンジン」から「InnoDB」を選択 となります

    phpMyAdmin で MySQL のストレージエンジンを MyISAM から InnoDB に変更する方法
    kaza13
    kaza13 2011/03/30
  • ウノウラボ by Zynga Japan: mysql アーカイブ

    いつの間にか会社で古株になったyamaokaです。 webアプリケーションのバックエンドにMySQLを使っている場合、 クエリ(SQL)のチューニングをする必要がありますよね。 皆さんはチューニングの計画をどのように立てていますか。 もちろん、既に明らかに重いことが想定されているページがあれば、 その処理で使われているクエリを中心にEXPLAINなどを使って解析していけばいいと思います。 でもそうではなく、全体的にクエリの見直しやチューニングを行いたい場合は 実際に実行されているクエリを確認していくという作業が必要です。 そこで使うことができる3つの方法について書きたいと思います。 遅いクエリを記録する MySQLにはスロークエリログといって、 実行に時間がかかったクエリを記録する機能が最初から付いています。 /etc/my.cnfに次のように設定を書けば実行時間が1秒を超えたクエリが出力

    kaza13
    kaza13 2011/03/30
  • MySQLのストレージエンジン変更

    DoRuby! (ドルビー!) は現場のエンジニアによる、主にRubyなどの技術に関する様々な実践ノウハウを集めた技術情報サイトです。 君は知っているか? MySQLに、ストレージエンジンというものがある事を。 【知っている】 → え?知ってる?じゃあもう読まなくてもいいかもね。(次回にご期待ください) 【知らない】 → そうか・・・・あんた、オレと同じだな。(続きをお読みください) ストレージエンジンていうのは、SQLの実データがどのような形式で、 どのように格納されているかを管理している部分で、それらのデータ にアクセスする処理を行うとの事。 で、以下の二つが代表的なものだそうです。 【MyISAM(マイアイサム)】 ・テーブル単位のファイルによるデータ構造を持つ。 ・トランザクション機能がない分、軽快に動作する。 ・ロックはテーブル単位でかかる。

    kaza13
    kaza13 2011/03/30
  • MySQLについて 伍 - インデックスについて

    通常、MySQLでは、selectコマンドを実行した場合、1レコード目から最終レコードまで、シーケンシャルに検索を行っていきます。 しかしながら、レコード数が大量になってくると、検索速度の問題が生じます。 そこで、より高速な検索を行うために、インデックスを作成するのが一般的です。 インデックスを作成することによって、検索速度は劇的に改善されます。 但し、MySQLでは、1,000件以下であればシーケンシャルに検索した方が速いとされています。 さて、インデックスとはどのようなものであるかというと、直感的には、図書の巻末に付されている索引(インデックス)と同じです。 索引語はアイウエオ順、あるいは、アルファベット順に並べられていて、各々の索引語には、その索引語が登場するページ数(位置情報)が示されています。 読者はその位置情報を頼りに、ページを捲って、目的のキーワードのある部分を読

    kaza13
    kaza13 2011/03/30