MySQL

DB

[MySQL]MySQLでパーティショニングを使う場合の例

MySQLでパーティショニングを使う場合の例#既存のテーブルにパーティションを作成ALTER TABLE table_name PARTITION BY RANGE (id) (PARTITION 1000000_table_name VA...
MySQL

[mysql]パーティショニングの使いどころ

mysqlにはパーティショニングという大変便利な機能がある。これは、あるカラムの条件をキーにしてテーブルを分割して、検索効率を上げる便利な機能である。パーティショニングとこんなに早くなる!というメリットを書いてあるブログはたくさんあるのです...
CakePHP

[CakePHP1.2]id以外のカラムでアソシエーション

id以外のカラムでアソシエーションしたい場合。こんな感じで一時的にprimaryKeyを変更する。$this->{model}->primaryKey->='hoge_id';使い終わったら戻しておきましょう。$this->{model}-...
CakePHP

[cakephp1.2]validatesチェック後にデータを読み込むとエラーメッセージがリセットされる

$this->{model}->set($this->data);$this->{model}->validates();$this->{model}->read(null,1);などとして、ヴァリデーションチェック後に読み込みを行うと、エ...
DB

[MySQL]DBの高速重複チェック

DBにデータを入れる際に、同一データがないかどうかチェックをしなければならない場合。単純に、同じ名前の人がいるか?というようなものだったら単純にselect文を発行してチェックすればよい。(まぁ、名前の漢字が違うとか、電話番号のフォーマット...
DB

[MySql]1016: Can’t open file: ‘./~/~.frm’ (errno: 24) エラーの対処法

MySqlでパーティションテーブルを設定しようとしたら以下のようなエラーメッセージが出てしまった。1016: Can't open file: './~/~.frm' (errno: 24) どうも、mysqlが同時に開くことができるファイ...
CakePHP

[CakePHP2.x]レプリケーション環境での保存先変更

レプリケーション環境下でマスター、スレーブ環境の切り替えを行うAPI設定database.phpにマスターとスレーブの接続設定を書くルールはスレーブ用の設定名の後ろに_master を付けたマスター用の設定を記述する例)$default =...
CakePHP

[CakePHP2.x]DebugKitとキャッシュのPermission denied問題について

CakePHP2.xのあるバージョンからやたらとキャッシュに関する問題が多発しているように思われます。対処法としては、以下の2ファイルにマスクの設定を追記してあげるのが良いようです。//app/Config/core.phpCache::c...
CakePHP

[cakephp2]アプリケーションを複数設置してAPCを用いている場合の注意

意外と気が付かない点。APCをつかってcakephp2のアプリケーションを複数サーバーに設置している場合。設定を一部ダブらないようにした方がいいようです。core.php//APCを使う場合の設定例Configure::write('Ses...
CakePHP

[cakephp2.x]セッションの保存先をDBするときにハマった件

表題の件。cakephp2でセッションの保存先をDBにする場合。core.phpでSessionの設定を下記に変更してConfigure::write('Session', array(//'defaults' => 'php''defau...
CakePHP

[cakephp2]modelのソートでrand()を使う場合の注意

たとえば、ランダムにデータを取得したい場合。$this->(model)->find('list',array('order'=>array('rand()'))); とするとSQLでは... rand() ASC ... などとなってしま...
CakePHP

[cakephp2.x]pagenateのカウントがおかしい場合。

pagenateのfiledsでDESCENTやgrop byを使うとカウントがおかしくなってしまう場合。AppModel.phpに以下でpaginateCount()関数をオーバーライドすればいい。function paginateCou...
CakePHP

[CakePHP1.2]Cakeでレプリケーションを使う場合

config/database.phpにマスター、スレーブのdb接続設定を以下のように追加する。例$default=array(DB設定); //スレーブ$default_master=array(DB設定); //マスターsaveなどの保...
CakePHP

[CakePHP2.x]modelの連想配列にモデル名が入ってこない件

CakePHP2.x系+CentOS6系の組み合わせだと、なぜかmodelの連想配列にモデル名が入ってこない場合があるようです。どうもPDO.MySQLとMySQLの組み合わせで、あるAPIでテーブル名がうまく取得できない場合があるため、そ...
CakePHP

[CakePHP1.2]モデルのテーブル名を動的に切り替える

モデルで使用しているテーブル名を動的に切り替えるメソッド$this->Model->setSource(table_name);マージテーブルなどで年代別に複数のテーブルに分割している場合などで、特定のテーブルのデータを取得したいときに使え...
CakePHP

[CakePHP]NULLデータをコミットする

リストボックスなどで未選択の場合にデータとしてNULLを設定したい場合、空白のデータがなぜか"0"で保存されてしまいます。この場合、modelのbeforeSave()メソッドで以下のような処理を行えば良い。function beforeS...