タグ

2014年10月15日のブックマーク (10件)

  • naoyaのはてなダイアリー - MyISAM vs InnoDB

    あくまで憶測で仮説でしかないんですが。 MySQL のストレージエンジンのうち代表的な二つ、MyISAM と InnoDB はよく MyISAM: Read は速いけどテーブルロックのため並行性が低い。運用が簡単。 InnoDB: MyISAM より Read は遅いけど並行性が高い 。行レベルロックなので。あとトランザクションや外部キー制約。運用が MyISAM よりちょっとめんどくさい。 という区別がされます。ここから転じて、 MyISAM は参照系クエリが大部分を占める場合に適用すると良い。例えば blog アプリケーションとか。 InnoDB は更新系クエリが多い場合に適用すると良い。 と言わたりします。実践ハイパフォーマンスMySQL でも第2章 ストレージエンジン(テーブル型) P.30 に アプリケーションでトランザクションを使用する必要がなく、主に SELECT または I

    naoyaのはてなダイアリー - MyISAM vs InnoDB
  • MyISAMとInnoDBのどちらを使うべきか

    Twitterで話題になってたので簡単にまとめました。 ●MyISAMにしか無い機能を使いたい場合はMyISAMを使うしかない ・全文検索 (TritonnやSphinx) ・GIS ●InnoDBの利点(MyISAMの欠点) ▲障害対応系 ・クラッシュしても再起動するだけでリカバリができる ・クラッシュリカバリにかかる時間はテーブルサイズに比例するようなことはなく、コミット済みのデータは修復できる (巨大なMyISAMテーブルのREPAIRには数日単位で時間がかかることがある) ・オンラインバックアップができる ・INSERTやLOAD DATAなどを実行している途中でCtrl+Cでその更新系SQL文を止めても、テーブルは壊れないし、中途半端な状態で更新されることも無いし、スレーブが止まることも無い ▲性能系 ・行レベルロックなので並列性が高い(MyISAMはテーブルロック)。またSEL

  • 運用視点なMyISAMとInnoDBと。 – LexTech

    MySQL5.5からトランザクション処理ができるInnoDBがデフォルトストレージとなりましたし、とりあえずInnoDBにしとこうという風潮から、ストレージがInnoDBであることも多いのですが、実は蓋を開けて見るとまだまだMyISAMで動いているサービスがたくさんあります。今回は運用面から見た両者の違いをみてみたいと思います。 同じMySQLですが、InnoDBの運用とMyISAMの運用は注意するポイントが違います。 ロック方式 一番大きい違いはロック方式の違いでしょうか。InnoDBは行ロック方式(*1)、MyISAMはテーブルロック方式です。データをINSERTやUPDATEする時はセマフォ制御のためロックされますが、その時の挙動が違います。 たとえばUPDATEのクエリを投げると、MyISAMの場合は対象テーブル全体がロックされ、その後のクエリが”詰まり”ます。なので重いクエリを発

  • booleanを返すメソッドの命名規約 - shitstormちゃんぺろぺろブログ

    2013-09-03 booleanを返すメソッドの命名規約 プログラミング 百田夏菜子 世間には well-known なメソッド命名規約というものがあって、boolean を返すメソッドはやれ is で始めろだの has パターンもあるんじゃよだのと言うじゃないですか。だけど、英語が苦手な僕たちには、どういうときに is なのか、はたまた has なのか、そんなことわからないんです。 かといっていつまでも匿名メソッドで逃げ続けるわけにもいかないので、英語が苦手なりにまとめてみました。解釈が誤っている可能性大有りなので、鵜呑みにしたらお前はいつかどこかで恥をかいて死ぬ。 以下の資料を参考にしました。 2.9.4.boolean 変数を返すメソッド boolean 変数を返すメソッドについては、「is + 形容詞」「can + 動詞」「has + 過去分詞」「三単現(三人称単数現在)動

  • http://blog.1000k.net/2010/11/15/mysql5-1%E3%81%AEboolean%E5%9E%8B%E3%82%92%E6%A4%9C%E8%A8%BC/

  • MySQLのVARCHARサイズについて

    正確な最大長がわからないときの最小かつ十分なサイズの値ってどう決めるのが良いのだろうーと思ってつぶやいてみたところ、多くの方々に返信いただけました。ありがとうございます。

    MySQLのVARCHARサイズについて
  • SQL の命名規約とフォーマット - ぐるぐる~

    ときどきの雑記帖さん経由で、私のSQLフォーマットをみて、自分の規約もさらしてみる*1 *2。 命名規約 テーブルやビュー、共通表式は Pascal 記法で、複数形とする*3。例えば、Employees とか Works とか ただし、リレーションテーブルはその限りではない。例えば、EmployeeWork とか カラム名はアンダーバー区切りで、単数形を基とする。例えば、name とか 人工キーを使用する場合、 自身の人工キーは id とする 外部キーはテーブルの頭文字の小文字 _id を付けたものとする。例えば、e_id とか 重複する場合は・・・決めてない (ぉ テーブルに別名を付ける場合、テーブル名の単数形を使用する 自己結合等でテーブルの区別が必要な場合、子テーブル側に C と付ける 孫には GC、GGC と付けていく (実際、そんなに深い自己結合なんてしないけど) フォーマット

    SQL の命名規約とフォーマット - ぐるぐる~
  • マスタデータの扱い方について · Issue #25 · rawhide/styleguide

  • レガシーPHPプロジェクトあるある - komagataのブログ

    プロジェクト名に愛が無い そしてリポジトリ名がncrm(多分New CRMの略)。だったら更に新しいの出たら何になるのか。nncrmか?nnncrm、n5crmとかschemeの仕様みたいになっていくのかと小一時間(略 テストが無い テストぉ?そんなお上品なもんなんざぁ、とんとお目にかかったことねーなぁ? バリデーションが無い バリデーション?そんなお上品なもんなんざぁ(略 サーバーがrootログインの許可+IP制限している セキュリティを高めたいのか低めたいのかどっちなのか。使い辛いわ。 バージョン管理システムがよくわかってない なぜトップにぶち撒けられてる?trunkはどこ?branchesとtagsはなぜ空? メソッドが大文字から始まる あんた絶対Windows畑から来たね?同じ調子でPHP書かれても困るんだヨォ。 全テーブルに共通のプレフィックスが付いている いや、データベース名が

  • マスタテーブル - ぐるぐる~

    突っ込みどころは色々あるかもしれないけど、とりあえずまとめてみた。 マスタテーブルとは? マスタテーブルやトランザクションテーブルという単語はよく聞くけど、会社によって、更にプロジェクトによってもまちまちで、これといった定義は(多分)存在しない。 しかし、ある程度共通認識となっているであろう点はいくつかあるので、それについて考察してみた。 マスタテーブル=更新が頻繁に起こらないテーブル まず、マスタテーブルを更新が頻繁に起こらないテーブルという考え方から。 この考え方では明確な線引きは不可能だけど、特徴はよく表していると思う。 つまり、マスタテーブルと呼ばれるテーブルはトランザクションテーブルと呼ばれるテーブルよりも更新*1の頻度が小さい。 マスタテーブル=主要なテーブル 次に、マスタテーブルを主要なテーブルとする考え方。 これは、マスタを主要という言葉に置き換えただけにすぎず、あまり意味

    マスタテーブル - ぐるぐる~