タグ

データベースに関するrti7743のブックマーク (11)

  • 開発メモ: Kyoto Tycoonベータ版リリースすた

    ここのところ必死こいて作り込んでいたKyoto Tycoonだが、主要機能を実装しきって文書もそこそこ書けてきたので、ベータリリースということにした。プロジェクトページもちゃんと作ってある。 公式には英語の文書しか作らない方針なのだが、それだと国内ではなかなか使ってもらえないので、この場でチュートリアルを書いてみる。 Kyoto Tycoonとは プロセス組み込み軽量データベースライブラリであるKyoto Cabinetをネットワーク越しに利用できるようにするためのツールキットである。KCのデータベースを内部に持ったサーバプログラムと、それに接続してデータベースを操作するためのクライアントライブラリからなる。また、コマンドラインからサーバにアクセスするためのユーティリティもついてくるので、簡単に使い始められる。 製品コンセプトは、「永続的キャッシュサーバ」もしくは「memcachedの永続

  • 地獄のようによくわかるSQLテーブル結合 - こせきの技術日記

    テーブルのJOINが苦手でしたが、この例を思いついてからは、すっきりくっきり理解できるようになりました。むしろ頭から離れません……。 ※ INNER、OUTERは飾り。省略できる。 INNER JOINJOIN LEFT OUTER JOIN → LEFT JOIN RIGHT OUTER JOIN → RIGHT JOIN ※ ON ...=... をまとめて USING(属性) と書ける。 ※ 何で結合するか言うまでもない時は、NATURALを指定すると勝手にJOINしてくれる。NATURALにJOINして……。 ※ WHEREは結合した結果に作用する。 ※ 現実には上図のように1対1で結合しません。 ※ おまけ。CROSS JOIN。 こんなの使いません。 ブクマ用画像。

    地獄のようによくわかるSQLテーブル結合 - こせきの技術日記
  • 第3回 テーブル設計のグレーゾーン~毒と薬は紙一重 (2)列持ちテーブル | gihyo.jp

    第2回を読まれた方は、この両者を変換するSQLを紹介したことを覚えているでしょう。そのSQLを利用すれば、「⁠列持ち」⇔「行持ち」の変換を行うことが可能なので、最悪、設計時点でどちらかのモデルを選択したあとに、「⁠やはりうまくいかなかった」ということでもう一方のモデルへチェンジすることも、できないわけではありません(アプリケーション側の修正など、相応の工数は覚悟せねばなりませんが⁠)⁠。しかし、最初は可能な限り「行持ち」を選択するべきです。 その理由は、列持ちモデルの拡張性と保守性の低さです。実際、今は2008年なので年度ごとに作られた列も2008年まで用意していればよいとして、来年になったらどうすればよいのでしょう? 列をもう1つ追加するほかありません。すると毎年テーブルの構造を変えなければなりませんし、このテーブルへアクセスするSELECT文から結果を受け取るホスト言語まで、ほとんどシ

    第3回 テーブル設計のグレーゾーン~毒と薬は紙一重 (2)列持ちテーブル | gihyo.jp
  • 第3回 テーブル設計のグレーゾーン~毒と薬は紙一重 (1)単一参照テーブル~テーブルにポリモフィズムは必要か | gihyo.jp

    SQLアタマアカデミー 第3回テーブル設計のグレーゾーン~毒と薬は紙一重 (1)単一参照テーブル~テーブルにポリモフィズムは必要か はじめに リレーショナルデータベースが関わる案件において、その開発効率と品質を最も大きく決定する要因は、テーブル設計です。テーブル設計は、工程のかなり初期の段階でなされますが、ここがまずいと、その後の開発全体を無駄に不効率で混乱したものにしてしまい、かつ容易に後戻りがきかないという重要なステップです。したがって、「⁠はじめにテーブルありき」は何にもまして重要な合言葉です。 しかし、この工程の難しいところは、往々にして一義的な正解を定められないことです。常に「これが正解」と呼べるような決まったアルゴリズムが存在しないのです。もちろん、数十年にわたる多くの人々の努力によって、いくつかの効果的な設計技法や、原則として踏み外してはいけない最低限のルール(可能な限り正規

    第3回 テーブル設計のグレーゾーン~毒と薬は紙一重 (1)単一参照テーブル~テーブルにポリモフィズムは必要か | gihyo.jp
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • HandlerSocketソースコード公開しました | BLOG - DeNA Engineering

    はじめまして、樋口と申します。 先日のDeNA Technology Seminar #2でお話させていただきました HandlerSocket Plugin for MySQL のソースコードを公開しました。 HandlerSocketとは? 簡単に言うと、MySQLデータベースへのアクセスを高速化するためのプラグインです。MySQLSQLパーザをすっ飛ばし、ネットワーク通信とマルチスレッド処理周辺を置き換えることによって、InnoDB等のデータベースエンジンの性能を限界まで引き出します。 このHandlerSocketですが、すでにモバゲータウンにて実際に運用しています。従来MySQLとmemcachedの構成で運用していた箇所を、HanderSocketを組み込んだMySQLだけの構成に置き換えました。その結果、MySQLサーバの負荷軽減、memcachedの負荷軽減、ネットワーク

    HandlerSocketソースコード公開しました | BLOG - DeNA Engineering
  • MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記

    MySQLでテーブルへのカラム追加、インデックス追加やテーブルの再編成などを行うと、その間テーブルに共有ロックがかかってしまいます。そのためこれらのメンテナンス処理は、通常利用者の少ない深夜早朝帯にサービスを止めて実施する必要があります。日はそれを無停止、オンラインのままでできないかという話題です。 基的なアイデア メンテナンス対象の元テーブルをコピーして、作業用の仮テーブルを作ります 仮テーブルに対して、カラム追加などの変更を加えます その間、元テーブルに対して行われる更新処理について差分を記録しておきます 仮テーブルの変更が終わったら、記録しておいた差分データを仮テーブルに反映します 差分データの反映が終わったら、元テーブルと仮テーブルを入れ替えます これと似たようなことを考えた方は結構いらっしゃるのではないでしょうか。ただ、言うは易し、行うは難しです。整合性がきちんと取れるかどう

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記
  • ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション)

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2010年7月1日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり PHPのデータベース・アクセス・ライブラリPDOは、DB接続時の文字エンコーディング指定ができないため、文字エンコーディングの選択によっては、プレースホルダを使っていてもSQLインジェクション脆弱性が発生します。 追記(2011/06/19) ここに来て急にブクマが追加されはじめていますが、このエントリを書いてから状況が改善しています。PHP5.3.6(2011/03/17)にて、PDOでもデータベース接続の文字エンコーディングを指定できるようになりました。この版で、UNIX版のPHPでは解決しましたが、Win

    ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション)
    rti7743
    rti7743 2010/07/03
    ガラケーが消えてくれれば、webはUTF-8元に幸せに統治できそうなんだけどなぁと思ってる。
  • 知られざる「マルチテナントアーキテクチャ」(2)~スケーラビリティのカギは組織ID

    セールスフォースが採用しているマルチテナントアーキテクチャでは、すべてのユーザーが同一データベース、同一スキーマを共有しています。これによってインフラの共有が容易になり、非常に効率的な運用と低コストを実現しています。 (エントリは「知られざる『マルチテナントアーキテクチャ』(1)~SaaSはみんな同じではない?」からの続きです。) しかし、それだけではスケーラビリティやアベイラビリティを実現することはできません。それらの実現には別の技術が併用されています。それはOracleのパーティショニング機能とパラレル機能による分散処理です。 パーティショニング機能の話をする前に、セールスフォースが採用しているデータベースの特徴を見てみましょう。 すべてのデータに振られる組織ID セールスフォースはすべてのユーザーが1つのデータベースを共有するマルチテナントアーキテクチャを採用しています。ということ

    知られざる「マルチテナントアーキテクチャ」(2)~スケーラビリティのカギは組織ID
  • 403 Error - Forbidden

    403 Error 現在、このページへのアクセスは禁止されています。 詳しくは以下のページをご確認ください。 403ERRORというエラーが発生します

  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • 1