私の仕事は、DBエンジニアです。望んでデータベースの世界へ来たわけではなく、辞令によって、入社1年目の私はOracleと向かいあうことになりました。当初、私はデータベースが面白くありませんでした。「ネットワークは花形、データベースは日陰」という言葉も囁かれていました。今でも囁かれているかもしれません。 ですが、しばらくデータベースを触っているうちに、こ...
MySQL には全文検索機能がありますが、これは単語単位のインデックスを作るので、日本語や中国語のような単語の切れ目が簡単にわからない言語には使用することが できません。それに、単語の真ん中にある文字で検索してもヒットしません。 (例:検索語 'in' は 'ping' にマッチしない。)MySQL 5.1からMySQLにはプラグインがサポートされ、サーバーを再起動したり再コ...
IBMにAJAXとPHPとMySQLを使ったRSSリーダーの作り方が掲載されています。 いわゆるサーバインストール型のRSSリーダーについて、個人で使うだけではなくその結果を閲覧者に見せるためのモードも搭載するという非常に凝ったものになっています。 ソースコードもダウンロードでき、実際のスクリーンショットなども使って解説されているのでRSSリーダーを作りたいと思っている人...
ユーザ認証をプラグインを使って作ろうと思ったんだけど、 $ script/plugin list すると、たくさんでてきてどれが何やらさっぱり。 そこでまとめてみた。 認証系 account_location アカウント毎にサブドメインがあるような、スコープ付の認証に。 acts_as_authenticated script/generate authenticated user account で認証機能が作れる メール認証を使ったアクティベーションも作れる generator を使うので、...
『 AJDBCdriverforSQLite.Itcomesintwoflavours,a100%PureJavadriverbasedonNestedVMoranativeJNIlibrary.BinariesareprovidedforWindowsandMacOSX. 』
コマンドを実行して下記のようなエラーや修復を促すメッセージが表示された場合は、早急に対処する必要があります。 Data records: 42 Deleted blocks: 0 myisamchk: warning: 1 clients is using or hasn't closed the table properly - check file-size - check key delete-chain - check record delete-chain - check index reference - check data record references index: 1 - check dat...
プロジェクトのコーディングルールがこうでなければいけないとか、他人に強制するわけではないが、自分自身で一貫性の無いコードを書くのは気持ち悪いので、オレオレルールを決めてたりする。大抵は デ・ファクト的なルールに沿う形で書くことが多いのだが、SQL や PL/SQL に関してはなかなかデファクトと呼べるものがないので(あるのか?)、メモ的に書きとめておく。原則...
こんにちは satoです WEBサービスは作るよりも運用の方がコストがかかるとも言われています。 運用を極力自動化して、コストを減らしたいものです。 ここではウノウで使っているツール類を紹介したいと思います。 1) 疎通、生存監視 webの生存監視などは nagiosを使って監視しています。 nagiosには - いつ(土日を除く、10時~22時までの間で など) - どのタイミングで(N回連続で ,復...
IBMのサイトに、PHPから操作するデータベースに関してよく見られる5つの問題点とその解決方法が掲載されています。 データベースのデザインをする際、一般的に発生する問題点についての解説です。 で、肝心の5つの問題が何かというと、以下の通り。
オープンソースのソーシャルブックマーク提供用プログラムScuttleのインストール方法を示します。 ScuttleはPHP+MySQL用に書かれていてレンタルサーバなどにも設置できると思います。 本記事では、PHPとMySQLの構成でのインストールを行います。 1. Scuttleパッケージをダウンロード後、解凍する 2. 次のSQL文でMySQLデータベースを作成する. CREATE database scuttle 3. 次に必要なテーブルを作成...
ここ3日間ぐらい超絶な重さだったのはサーバに物理的トラブルが発生したからではなく、単純に閲覧者数が満員御礼となり、各時間で倍増したためです。Load Avarageはひどいときで15分間の平均値「27.1」程度。瞬間最大風速だともっと高いです……明らかにまずい。 というわけで、Apacheのデフォルト設定で今までは大丈夫だったのですが、ついに高負荷サイト用の設定に変更せざ...
ibzi's blogにて簡単にページのキャッシュを行う方法が紹介されています。この方法はPHPでMySQLクエリを使用してページを表示するページのキャッシュ方法です。ページをキャッシュしてしまえば、次からのアクセスではキャッシュが使用されるので、無駄な処理は行われません。ここで紹介されているのは、POSTやSESSIONの内容が加味されていないので、ユーザー名を出力するような...
京都で行われたオープンソースカンファレンス2008 Kansaiに行ってきました。 はてなのCTO naoyaさんの発表を聞いて来たのですが、創業時から現在までのインフラ構築の工夫や苦労を語られていました。 はてなnaoyaさん はてなを支えるバックエンドシステム 関西のエンジニア業界を盛り上げたい アジェンダ はてなのサービスを支えるバックエンドシステムを解説 創業時からこれまで...
『 Thisclusterisload-balancedbyahigh-availabilityloadbalancerthatinfacthastwonodesthatusetheUltraMonkeypackagewhichprovidesheartbeat(forcheckingiftheothernodeisstillalive)andldirectord(tosplituptherequeststothenodesoftheMySQLcluster). 』
#<Favorite:0xb78c11c0 @attributes={"name"=>"味噌汁", "member_id"=>1, "id"=>1}> # 好物が参照される >> saki.favorite => #<Favorite:0xb78c11c0 @attributes={"name"=>"味噌汁", "member_id"=>1, "id"=>1}> # 好物テーブルにも反映されている (member_id も自動的に付与されている事に注目) >> Favorite.find(:all) => [#<Favorite:0xb78afb28 @attributes=...
前回書いたMySQLの負荷低減TIPSがなかなか人気だったので、 次もMySQLに関連したネタを。 PHPでADODBを使ってMySQLを使い出したんですが、 このADODB、速度も早く、機能面でもいろいろ便利なところがあり助かっています。あまり日の目を見ていないように感じるので、そんなところを紹介していきます。 PHP4.3系しか使えないサーバーでも動くので重宝してます。 さらに!PEAR::DBの互換...
『 MySQLパフォーマンスに関する84のTIPS 』
『 LinuxThreadに比べNPTLはスレッド生成のコストが低いとされているので、性能を追求するならばダイナミックリンクされているMySQLのバイナリでNPTLを使うのもよいと思います。 』
『 FULLTEXTは全文検索Index。デリミタで区切った単語にIndexを張りマッチ率の高い順にSortされたRecordSet取得。4.1.1以降sjis,ujis,utf8対応。区切り方考えれば日本語でも。全Recordの50%以上該当語は除外。任意文字数未満も可。記号も。 』
『 ブラウザでサーバ上のファイルを管理できるAjaxファイルマネージャのスクリプト。Apatch2.0+PHP4以降+Perl5.8.0+MySQL4以降で動作。 』