タグ

DBに関するchronyoのブックマーク (20)

  • PostgreSQLアンチパターン

    37. 積み重なるWHERE句 -- 有効なアカウントのブログを取ってきたい場合 SELECT * FROM blog INNER JOIN users ON users.id = blog.user_id AND users.delete_flag = 0 WHERE blog.delete_flag = 0 38. 積み重なるWHERE句 -- 有効なアカウントのブログを取ってきたい場合 SELECT * FROM blog INNER JOIN users ON users.id = blog.user_id AND users.delete_flag = 0 WHERE blog.delete_flag = 0 ユーザの削除フラグを見る 39. 積み重なるWHERE句 -- 有効なアカウントのブログを取ってきたい場合 SELECT * FROM blog INNER JOIN users

    PostgreSQLアンチパターン
    chronyo
    chronyo 2015/11/29
    論理削除がどうしてダメかの説明の説得力。DBには事実のみを記録する。マテビューは極力使わない、正規化せよ。=>「シンプルな設計は全てに勝る」
  • PostgreSQL のサーバー側でセッションを切断する方法 - Qiita

    サーバー側でクエリの実行を中断するには SIGINT を当該プロセス( ps や pg_stat_activity から探す)に送ります(kill -INT PID)が、これではセッションは切断されません。メンテナンスなどで切断して欲しい場合には pg_terminate_backend(procpid) を使います。 当該の PID がわかっている場合には

    PostgreSQL のサーバー側でセッションを切断する方法 - Qiita
  • 1日に100万レコード増える場合のテーブル設計

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。 PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

    1日に100万レコード増える場合のテーブル設計
    chronyo
    chronyo 2015/11/05
  • PostgreSQL 9.2 でタイムゾーンのデフォルト値が変わった話 - mallowlabsの備忘録

    PostgreSQL 9.1 から 9.2 にバージョンアップすると postgresql.conf に timezone の設定を書かなかった場合のデフォルトが「ローカルタイムゾーン」から「GMT」に変わってて命を落とした… 2014-03-31 18:36:12 via web PostgreSQL のタイムゾーンをローカル時間に合わせるために、postgresql.conf の timezone の設定を 設定しない(デフォルト)運用にしていた。 今回、PostgreSQL 9.0 → 9.3 にバージョンアップをする際に、タイムゾーンの設定のデフォルト値が変更されていて、大変な目にあったのでメモしておく。 PostgreSQL 9.1 以前 postgresql.conf を以下のように設定すると、PostgreSQL のタイムゾーンは サーバのタイムゾーンと同じ になる。(tim

    PostgreSQL 9.2 でタイムゾーンのデフォルト値が変わった話 - mallowlabsの備忘録
    chronyo
    chronyo 2015/02/12
    かつて同じようにはまったことある。
  • 開発者のためのSQLパフォーマンスの全て

    前書き - インデックスの作成はなぜ開発者のタスクなのか インデックスの 内部構造 - インデックスは何に似ているか インデックス リーフノード - 二重連結リスト 検索 ツリー(Bツリー) - バランス木 遅いインデックス パートI - インデックスを遅くする2つの原因 where 句 - 検索のパフォーマンスを改善するためにインデックスを作成 等価 演算子 - 一致するキーの検索 プライマリキー - インデックスの使い方を確認 複合インデックス - 複数列に対するインデックス 遅いインデックス パートII - 前の問題点が再び 関数 - where句の 中での関数 大文字・小文字を区別する 検索 - UPPERと LOWER ユーザ定義 関数 - 関数インデックスの制限 インデックスの作り過ぎ - 冗長性の排除法 パラメータ化 クエリ - セキュリティとパフォーマンスのために 範囲 検

    開発者のためのSQLパフォーマンスの全て
  • PostgreSQLスキルアップノート

    算術関数・ランダム値生成(psql用)【一覧に戻る】マニュアルへのリンクは/9.2/としています。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■■■■ PostgreSQL スキルアップノート ■■■■ ■◆■■ 算術関数・ランダム値生成(psql用) ■■■■ ■■■■ ■■■■ 使用環境:PostgreSQL9.2.3 (CentOS6.2) 2013/03/17 (C) 2013 ohdb ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ テストデータなどの生成用途向け。 psqlコマンドラインから扱えるごく簡易的なもの。 【マニュアル】 →●[マニュアル] 【マニュアル参考】 「SQL差し替え」→●[マニュアル] 【その他】 - ■1■ 意図した桁数や整数範囲をランダムに生成(基形) ━━━━━━━━━━━━

  • PostgreSQL の VACUUM をなんとなくでするのはやめよう

    はじめての人もそうでない人もはじめまして。 河野と申します。 いきなりすいません・・・。 私の名前をさっそく覚えていただいた方には申し訳ないのですが、 弊社にはもう一人河野というものがおり、そっちとは違う方と覚えて頂けると溜飲が下がります…。 さて、今回 Fusic Advent Calendar の一番槍として最初に寄稿させて頂くことになりました。 日はお題の通り PostgreSQL の VACUUM をなんとなくでするのはやめようという提案を、全国 4,000万の VACUUM ファンの皆様にしたいと思います。 尚、PostgreSQLの対応バージョンは 8.3 以降となります。 PostgreSQL のメンテナンスと VACUUM データベースに PostgreSQL を採用している会社はどのくらいあるのでしょう? オープンソースのデータベースでは MySQL が多く採用されてい

    PostgreSQL の VACUUM をなんとなくでするのはやめよう
    chronyo
    chronyo 2014/04/24
    基本でつん。
  • ホーム | Let's POSTGRES

    メインコンテンツに移動 お知らせ Let’s Postgres 運営管理についてのお知らせ コンテンツメニュー 導入検討 と 入門 インストール 運用管理 チューニング 新機能: 16 / 15/ 14 / 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 トラブルシュート サポートとFAQ 事例紹介 イベントレポート リンク集 レプリケーション / クラスタ構成 XML / PostGIS / 拡張モジュール パーティショニング / テキスト検索 Window関数 / 再帰SQL / 外部データ連携 文書: 15 / 14 / 13 / 12 / 11 / 10 / 9.6 / 9.5 Let's PostgreSQL は特定非営利活動法人日PostgreSQLユーザ会が運営しています。 RSS feed

  • PostgreSQL Deep Dive

    記事は PostgreSQL Advent Calendar 2019 の1日目の記事です。初日から遅れ気味ですすみません。。 久しぶりの記事ですが、最近はPostgreSQLをゴリゴリと触る感じでもなくなってきているため、記事もゆるめの感じでお送りしたいと思います。 ■PostgreSQLの「パフォーマンス分析」とは PostgreSQLのパフォーマンス分析は、ざっくり言って、以下のようなステップで進められます。(PostgreSQLには限らないと思いますが) パフォーマンスの状況から、課題について仮説を設定する。 パフォーマンスに関連する何の情報を収集するかを決める。 情報を収集する。 収集した情報を加工し、分析しやすい形式に整える。 分析し、仮説を検証、ないしは何かを発見する。 より深堀り、確証を高めるために、再度情報集をしたり、データを加工、分析したりする。 何か対策を打って、

    chronyo
    chronyo 2014/04/22
    で読む]
  • PostgreSQLスキルアップノート

    PostgreSQL9.1のソースからのインストール【一覧に戻る】━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■■■■ ■■■■ PostgreSQL 9.1 ■■■■ ■◆■■ PostgreSQLのソースからのインストール(参考メモ) ■■■■ ■■■■ 2012/07 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 自分用のメモです。 後にパッケージによるインストールに変更したため、このページは参考として保存。 【ダウンロード】 http://www.postgresql.org/ftp/source/ 【参照サイト】 マニュアル(PostgreSQL 9.1.4文書) 第 15章 ソースコードからインストール http://www.postgresql.jp/document/9.1/html/installa

    chronyo
    chronyo 2014/04/21
    Postgreのソースコードからのインストールにおいて超参考にした。むしろコンパイル環境の構築に苦労した感じ。develも必要。。
  • 必要条件

    chronyo
    chronyo 2014/04/21
    PostgreSQLのソースファイルからのインストール。苦労したぞと。
  • PostgreSQLとOracleの仕様の相異

    oracle_fdwでは、WHERE句に指定した条件のうち、評価結果がPostgreSQLOracleで同じになるものをOracleに発行するクエリに含めます。 しかし、PostgreSQLOracleの仕様の相異のため、Oracleに発行するWHERE句の条件の中にも、ある限られた条件の下では、PostgreSQLOracleで異なる結果を返す場合があります。 このため、そのような条件がOracle側で評価されると、意図しないSELECT結果となったりエラー終了する場合があります。 この問題は、SELECT文のCTEを使用して回避できます。 評価結果がPostgreSQLOracleで同じとなる条件はWITH句の副問い合わせに指定し、異なる可能性のある条件は主問い合わせのWHERE句に指定してください。 以下にCTEを使用したSELECT文の例を示します。 postgres=#

    chronyo
    chronyo 2014/04/14
    めっちゃいい記事発見した。OracleだとNullと空文字区別しないけど、PostgreSQLだとしっかり区別するってことしか知らなかったなー。
  • OSS-DB Exam Gold 受験記 - Tech-Sketch

    「オープンソースデータベース技術者認定資格」の資格取得にチャレンジしました。 まだまだこの試験を受験された方は少ないと思いますので、これからチャレンジしようと考えている方々のために、どんな感じの試験なのか?どのような試験対策をしたのか?といったことを書いておこうと思います。 オープンソースデータベース技術者認定資格とは オープンソースのデータベースに関する技術力と知識を認定するIT技術者認定資格で、特定非営利活動法人エルピーアイジャパン(LPI-Japan)により運営されています。 資格概要 ただ、オープンソースのデータベースといっても、過去にSRA OSS Inc.が運営していた「PostgreSQL CE試験」をLPI-Japanが引き継いだものですので、実態はPostgreSQLのみのスキルを問う資格です。 (OSS-DBという名称にMySQL陣営から抗議の声が上がったのは記憶に新

    chronyo
    chronyo 2014/04/03
  • PostgreSQLで配列型のカラムを使ってみる - ぱせらんメモ

    PostgreSQLではカラムのデータ型に配列を使うことが出来る。いちおうSQL99準拠なのかな。 何はともあれテーブルを作成する SQLはこんな感じ。 CREATE TABLE favorites ( username varchar(20), -- ユーザ名 category varchar(20), -- カテゴリ名 items varchar(100)[], -- アイテム名(複数) PRIMARY KEY(username, category) ); itemsの部分が配列。プログラミング言語のように型名に括弧を付けた形で指定する。 括弧内に要素数を指定することもできるが、現在の実装では要素数の指定は無視され、無制限として扱われるとのこと(但しSQL99の仕様では要素数は固定にしかできない)。 また、配列の宣言方法はSQL99に準拠したitems varchar(100) ARR

    PostgreSQLで配列型のカラムを使ってみる - ぱせらんメモ
    chronyo
    chronyo 2014/02/21
    やっぱなー。。RDBで配列を定義するって意味がわからなかったが、やはり使う理由が特に見当たらないということがはっきりした。PostgreSQLのマニュアルにも明記されてる。
  • DBスキーマもバージョン管理したい!

    PostgreSQLカンファレンス2013 LightningTalk (2013-11-13: migr8.rbの設定箇所を若干修正) (2013-11-14: SQLite3での設定等を修正、「migr8.rb new --table=users」を追加)

    DBスキーマもバージョン管理したい!
    chronyo
    chronyo 2013/11/13
    あかん。大事なところでコミット毎にランダム文字列でバージョンを決定。一意性のみ保持し順番は別に管理するって発想がわかんなかった。Git勉強しないとな。。
  • Devsの常識、DBAは非常識

    1. MySQL Admin が見た Devs の常識、 DBA は非常識 2013/09/14 yoku0825@MyNA PHP Conference 2013 2. \こんにちは!/ ● yoku0825 ● とある企業の DBA ● MySQL 歴 5 年くらい ● オラクれない ● ポスグれない ● 嫁の夫 ● せがれの父 ● 日 MySQL ユーザ会 (MyNA) のスベり担当 3. \しゃべること!/ ● 日常的に MySQL のソースコードに触れる変態 DBA がフツーの Devs に投げた愛のマサカリ集 ( のつもり ) ● ウチの開発言語は PHP > Java >> Ruby らしいです ● ウチでは DBA がサーバーの構築、 Devs が設計・ テーブル構築・運営、 DBA はトラブルシュートや改 善提案 ( 運用 ) 、というサイクルで回しています。

    Devsの常識、DBAは非常識
    chronyo
    chronyo 2013/09/14
    面白かった。
  • OTN Seminar @ On Demand Content | Oracle 日本

    Oracle Cloud Infrastructure 2018 Certified Architect Associate 資格試験対策ポイント解説セミナー セミナーでは、第2世代の IaaS に対応した「Oracle Cloud Infrastructure 2018 Certified Architect Associate」認定資格試験のポイント解説します。実際の認定資格試験を想定した模擬問題を用いて各問題ごとに出題のポイントを解説を行うので、試験の出題トピックや実試験における出題傾向の把握しながら受験準備に役立てることができます。 Oracle Cloud Infrastructure 2018 Certified Architect Associate 資格試験対策ポイント解説 セミナー パート1 Oracle Cloud Infrastructure 2018 Certif

  • オラクルマスター11g ブロンズ&シルバー ~取得のためにすべきこと~

    多少やりにくい方法で紹介しています。 ※64bit版のやり方でインストールするほうが楽です。 【注意】 Oracle 11g XE(linux)は64bit OSにしか対応していません。 間違って32bitをインストールしないで下さい。 全文を読む

    chronyo
    chronyo 2012/10/17
    自分用メモ。
  • bnote File Not Found!

    ただいまページメンテナンス中です。htmlをshtmlとすることで目的のページに アクセスできるかもしれません。 あなたがアクセスしたページ(URL)は、存在していないか、変更されました。 メインページに戻って、もう一度アクセスしてください。 もしこの問題が続くようでしたら、管理者に通知してください。 Thank You www.bnote.net

  • 真のデータベースエンジニアを目指そう!

    論理データモデル 論理データモデルは、概念の世界で集めてきたデータ項目のうち、ユーザーにシステム化を期待される範囲でコンピュータに記憶される永続的なデータを対象としたデータモデルです。 論理データモデルには、4つのデータモデル・タイプ(階層型、ネットワーク型、リレーショナル型、オブジェクト型)がありますが、データ構造を最も表現しやすいタイプに当てはめて論理データモデルを作っていきます。いわゆるER図は、この論理データモデルの「リレーショナル型」に当たります。 一般的に、データベースの実装方式が「リレーショナル・データベース」であることを前提として、論理データモデルのタイプにリレーショナル型を選択していると思いますコラム2。 リレーショナル型の表記にはER図を用います。論理データモデルを作成する際には、「リソース系エンティティ」と「イベント系エンティティ」の切り出し、それらのリレーションシッ

    真のデータベースエンジニアを目指そう!
    chronyo
    chronyo 2011/01/14
    基本:リファレンス用。
  • 1