タグ

DBに関するatsamのブックマーク (5)

  • データベースの値をちょっとだけ書き換えたら検索に数十分かかる様になって障害になった裏話 - STORES Product Blog

    はじめに 2024年1月にリテール(ネットショップ・レジ)部門からサービス(予約)部門に異動になった @ucks です。 異動してからはスマートリストという機能の開発を行っていて、5月6日に無事リリースできたのと、開発途中で障害に至ってしまった部分があるので、裏側を少し紹介しようかなと思います。 はじめに スマートリストとは スマートリストの設計 検索の仕様変更 高負荷時のハンドリング そして障害へ 見逃した点 DBの実行計画確認時の見逃し 動作確認時の漏れ 監視先の漏れ ログの損失 おわりに スマートリストとは スマートリストの開発についての話を行う前に、まずはスマートリストについて簡単に説明しておきます。 スマートリストとは、特定の条件の顧客をラベリングする機能です。 早い話、最終予約日がいつ、予約回数が何回以上等の顧客の検索条件を保存しておいて、閲覧時にラベリングして、視認しやすくし

    データベースの値をちょっとだけ書き換えたら検索に数十分かかる様になって障害になった裏話 - STORES Product Blog
  • CouchDBとMongoDBの使い分け - モジログ

    CouchDBとMongoDBをしばらく使ってみて、その使い分けのポイントがわかってきたような気がするので、ちょっと書いてみたい。 CouchDBとMongoDBは、広く「NoSQL」と総称されている非SQL型データベースのうち、「ドキュメントデータベース」と呼ばれるカテゴリを代表する2つだ。ドキュメントデータベースとは、かんたんにいうと、JSONデータ(=ドキュメント)をそのままデータベースに保存できるというもので、従来のRDBのような「スキーマ」がない。複数のテーブルを結合(join)するという使い方をせず、一意キーの指定や比較的単純なクエリーでJSONデータを取り出す。 ここでは詳しい話には踏み込まず、2つのデータベースの違いを私の主観で、ごく大雑把にまとめてみる。 まず、それぞれの強みを私の印象で3つずつ書くと、こんな感じだ。 CouchDBの強み: 1)優れた管理画面「Futon

  • データベースの内部動作を知る

    SQLのプログラミングは奥が深い。特にパフォーマンスの観点から、そう言えるだろう。 みなさんご承知の通り、同じ結果を出すプログラムでも、SQLの書き方次第で処理時間に何倍もの差が生じ得る。効率の悪いSQLを書いてしまう原因は、多くの場合、リレーショナルデータベースの内部動作やアプリケーションに関する理解不足である。両者をよく知った上で最適なSQLを書けるようになることは、システムエンジニアとしての重要なスキルの一つである。 特集『基礎から理解するデータベースのしくみ』では、リレーショナルデータベースの内部動作について、基的な部分を分かりやすく解説している。SQLプログラミングに役立つことはもちろん、SQLチューニングやデータベース設計のための基礎知識としても不可欠だ。 イントロダクション ブラックボックスのままでいいの? Part 1:SQL文はどのように実行されるのか SQL実行までの

    データベースの内部動作を知る
    atsam
    atsam 2011/07/01
  • Zend_Db_Table の join でハマる - Memo

    Zend_Db_Table で join を使って、テーブルを結合してデータを取ろうとしてハマった。 発行したい SQL はこんな感じ。 SELECT statuses.id, statuses.user_id, statuses.reply_user_id, statuses.comment, statuses.created_at, users.user_name, users.private_flag FROM statuses JOIN users ON users.id = statuses.user_id WHERE statuses.user_id = ? AND users.private_flag = ? users テーブルと、statues テーブルを id と user_id で join する至って普通なもの。 O/R マッパとして Zend_Db_Table_A

    Zend_Db_Table の join でハマる - Memo
  • デザインパターンを利用したDBアクセスの実装

    Webシステムが主流となり、データベース・アプリケーションはJavaやC#といったオブジェクト指向言語で開発することが多くなった。しかし、データベース設計はオブジェクト指向モデルとうまくかみ合わず、データモデル設計に苦労するエンジニアは少なくない。連載は、オブジェクト指向モデルとデータベースモデルのインピーダンスミスマッチに対応するテクニックを紹介する。(編集局)

    デザインパターンを利用したDBアクセスの実装
  • 1