You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: avoid OR for better PostgreSQL query performance - Cybertec 原文公開日: 2018/05/07 著者: Laurenz Albe サイト: CYBERTEC -- データサイエンス分野でのPostgreSQLサポートやコンサルティングを行っている企業です ※挿絵は原著者自らによるものです。 生きるべきか『OR』死すべきか、それが問題だ」 「帰れ!」「非効率!」「同義反復!」 © Laurenz Albe 2018PostgreSQLクエリのチューニングは私たちCybertecの日常的な業務ですが、チューニング中にクエリにORを1つでも見つけた瞬間、恐ろしさに身の毛もよだつ思いがします。たいていの場合、ORはクエリのパフォーマンス低下の原因となるからです。 言うまでもないこ
A short list of common mistakes. Kristian Dupont provides schemalint a tool to verify the database schema against those recommendations. Database Encoding Don't use SQL_ASCII Why not? SQL_ASCII means "no conversions" for the purpose of all encoding conversion functions. That is to say, the original bytes are simply treated as being in the new encoding, subject to validity checks, without any regar
PostgreSQL 11が正式リリース。ハッシュパーティショニングやJITコンパイルによる高速化、ストアドプロシージャでのトランザクションサポートなど 発表文ではPostgreSQL 11の主な新機能を次のように説明しています。 PostgreSQL 11 provides users with improvements to overall performance of the database system, with specific enhancements associated with very large databases and high computational workloads. Further, PostgreSQL 11 makes significant improvements to the table partitioning system, adds
1. メタコマンドとSQLを一緒に使う 実行例 2. SELECT結果の値だけを取得する 実行例 3. SQLでSQLを作り実行 (9.6~) 実行例 4. サーバに応じて実行するSQLを変える (10~) 実行例 5. 忘れたDDLのシンタックスを確認する 実行例 6. SQLファイルの内容を一行ずつ確認しながら実行する 実行例 7. 特定のコマンドを定期的に実行したい 実行例 8. psqlを起動した時に実行されるコマンドを設定する 実行例 9. .psqlrcを一時的に使わない 実行例 10. SELECTの結果をCSV形式で出力 実行例 普段よく使っているpsqlで便利だと思う使い方を10個紹介します。運用で使うシェルスクリプトとかでもpsqlは使う事があると思うので、psql派でない人にも多少は役に立つはず。 特に最近のバージョンで追加された機能は、利用できるバージョンを記載して
オープンソースのRDB、PostgreSQL 10正式版がリリースされた。新機能には論理レプリケーション、宣言的パーティショニング、パラレルクエリの改善による性能向上などがある。 オープンソースのリレーショナルデータベースとして開発されているPostgreSQLの最新版「PostgreSQL 10」の正式リリースが発表されました。 PostgreSQL 9.0は2010年9月20日リリース、直前のバージョンであるPostgreSQL 9.6のリリースが2016年9月でしたので、1年ぶりのバージョンアップです。 これまでPostgreSQLのバージョンはX.Y.Zで示されるバージョン番号のうちX.Yがメジャーバージョンを示していましたが、PostgreSQL 10からはバージョン番号はX.Yの形式で示され、Xの部分がメジャーバージョンを示すことになるとされています(つまり次のメジャーバージョ
こんにちは。Cacooチームのイニエスタこと、とおのぶです。CacooはデータベースのPostgreSQLのバージョンアップを実施しました。基本的には公式のpg_upgradeの手順に従っています。ここではドキュメントには記載の少ない具体的な作業内容の流れを紹介したいと思います。 理由 ユーザアンケートからみる Cacoo のコア・バリューで記されたとおり、全体的なパフォーマンスの向上については重要度の高い課題の一つです。PostgreSQL 9.5ではソート性能の大幅な改善が強化点の一つで、パフォーマンスの改善が見込まれます。またフェイルオーバ後、新しいマスターに追従するスタンバイとして、古いマスターサーバをオンラインに戻すことができるpg_rewindも、PostgreSQL 9.5の魅力の一つです。 バージョンアップ前の構成 構成は、マスタとスレーブのストリーミング・レプリケーション
2. 2 自己紹介+所属会社紹介 • 渡部 亮太(わたべ りょうた) – JPOUG 共同創設者、ボードメンバー – Oracle ACE – 著書「プロとしてのOracleアーキテクチャ入門 [第2版]」 「プロとしてのOracle運用管理入門」 – ブログ「コーソルDatabaseエンジニアのBlog」 http://cosol.jp/techdb/ • 株式会社コーソル – 「CO-Solutions=共に解決する」の理念のもと、Oracle技術に特 化した事業を展開中。心あるサービスの提供とデータベースエン ジニアの育成に注力している – 社員数: 131名 (2016年7月時点) – ORACLE MASTER Platinum 11g 取得者数 45名 ORACLE MASTER Platinum 12c 取得者数 28名 (現時点でおそらく)取得者数 日本 No.1
SELECT COUNT(*) INTO before_count FROM table1; ... INSERT INTO table1 ...; ... SELECT COUNT(*) - brefore_count INTO registered_count FROM table1; なにかTABLEへの追加処理をしてますが、意図通りにできたかどうか、前後で COUNT(*)をとって、その差分を報告させようとしています。 複数のプロジェクトの複数のオーナーのコードで見かけたので、こんな初級アンチパターンも共有しときます。 なにがまずいの? COUNTは、シーケンシャル・スキャンしないと出てこない値なのです。アンチパターンでは、テーブル全体が対象ですから、主キーインデクスを総なめです。小さいテーブルのうちはいいのですが、運用の1000万行を越えるような巨大テーブルだと、主キーインデック
昨日書いたエントリがなかなかいい感じに拡散された。 MySQL使いが知るべきPostgreSQLとの違いと変わらない一つのこと で気付いた。 多分本当にMySQL5.7の罠が理由でPostgreSQLに移行する人は上のエントリを求めてない。 つまり本来ターゲットにすべき人は SQLはORMが解決してくれるから違いなんて気にしない ロジックはSQLではなくアプリケーションコード側が行う DBはデータを置くストレージだ、いいね? みたいな人だ。 前述のエントリでよしPostgreSQL使おう!!って人は多分MySQL使っても乗り越えていける人たちだ。 勿論そんな人達がPostgreSQLに来てくれるのは嬉しいし大歓迎。 それとは別にもっと窓口を拡げるために必要な移行時の罠をまとめておく。 これはMySQLと比較しながらPostgreSQLの事を書く。 だが初めてPostgreSQLを触る人は知
PostgreSQL 9.2より追加されたJSON型だが、特徴を理解して適切に使わないと色々な副作用に悩まされることになる。その問題点を挙げると共に、どのような場合に使うべきかの指針を示す。 PostgreSQLは、データ型としてjsonをサポートしています。しかし、やりたいことがある時に何でもかんでもjson型を使ってしまうというのはやめるべきです。これは、hstoreや新しく登場したjsonb型にも同じことが言えます。これらの型は必要な時には便利なツールになりますが、PostgreSQLでデータのモデリングを行う際に最初に検討すべきものではありません。 なぜなら、データを呼び出したり操作したりするのが難しくなってしまうためです。 何もかも同じところに入れてしまおうとすることによるアンチパターンをご存知の読者もいるでしょう。EAVアンチパターンは、長らくデータベーススキーマにおける必要悪
最新版では、新たなデータ型として「JSONB」(バイナリJSON)を追加しており、データストアのリレーショナル/非リレーショナルの選択は不要で、両方を同時に利用できる。JSONBは、高速なルックアップと、Generalized Inverted Indexes(GIN)を利用した簡易な検索クエリ記述をサポートし、JSONデータを一般的なデータベースと同等か、それ以上のパフォーマンスで扱える。さらに、テーブルとドキュメントの容易な統合を実現する。 ほかにも、複数マスタのPostgreSQLクラスタ作成をサポートする、双方向レプリケーションのように利用可能な、レプリケーションの読み取り/フィルタリング/操作に対応するAPIの提供を行う。また、レプリケーションスロットや時間差レプリカ、レプリカサーバにおける管理機能などの向上も行っている。 なお、GINインデックスの進化によって、インデックスサイ
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました Webシステムを開発しているときには大抵データベースを使います。そしてデータベースを使った開発時にはそれ用の管理インタフェースが欲しくなるでしょう。たとえばPHPであればphpMyAdminが昔から有名です。 対してPostgreSQLについてはphpPgAdminなどもありますが、もっとモダンなUIが欲しいと思う人も多いでしょう。そんな方に使ってみて欲しいのがpgwebです。 pgwebの使い方 pgwebの良いところとしてはApache + PHPなどのサーバを仕込むことなく、単体でWebサーバ機能を持っていることです。 $ pgweb --host localhost --user myuser --db mydb こんな感じで起動します。ちなみにテーブルが一つもないと起動に
毎回わからなくなってググってるから今度からここに追記していく。 MySQL PostgreSQL SHOW DATABASES; \l USE dbname \c dbname SHOW TABLES; \dt SELECT * FROM tblname\G \x on SELECT * FROM tblname; SELECT * FROM information_schema.processlist; SELECT * FROM pg_stat_activity; KILL <pid>; SELECT pg_terminate_backend(pid); KILL QUERY <pid>; SELECT pg_cancel_backend(pid); table / column の情報 MySQL PostgreSQL SHOW TABLE STATUS FROM dbname; わ
新春特別企画 [新春特別放談]ニッポンのPostgreSQLコミュニティ生みの親、石井達夫氏が語るPostgreSQLの現在・過去・未来(1) 世界のオープンソースDBの主流はMySQLで、PostgreSQLが流行っているのは日本だけ ─このフレーズを過去に何度聞いたことでしょうか。事実、今でもそううそぶく人々は少なくありません。しかし、ここ1、2年でPostgreSQLは明らかにグローバルレベルでのシェアを高めています。とくにHerokuやAmazon Redshiftといった大規模クラウド環境でのPostgreSQL採用が進んだこともあり、PostgreSQLがもともと備えていたスケールパワーや柔軟性に対してあらためて高い評価がなされる傾向にあります。 2013年は9月にPostgreSQL 9.3がリリースされ、レプリケーション機能やJSONサポートが強化されるなど、多機能化に加え
もういくつも寝ないでお正月です! Fusic Advent Calender5回目、最多出場回数を獲得することになりました安元です。 まだ確認してませんが、年末ジャンボが当たっているはずなので、 当たったあかつきには来年は車を買いたいと思います!! 基本的なIN句の利用方法 SQLでIN句を使用したことはありますか? 一致させたい条件をカンマ区切りで並べるだけで簡単便利に利用できますね。 福問い合わせを利用する場合は以下のようになります さて、このIN句で複数条件指定できたら便利だと思いませんか? 日本語で条件を表現すると基本的なINの条件は 「安元 もしくは 納富 もしくは 浜崎 もしくは 渡辺」となりますね。 複数条件が指定できるということは 「安元で男 もしくは 納富で女 もしくは 浜崎で男 もしくは 渡辺で女」 こんな条件指定ができるのです。 ではSQLを見てみましょう。 今回は副
▼ [PostgreSQL][MySQL] mysql より psql の補完が好きなので MySQL のテーブルを PostgreSQL から操作してみたよ このところ MySQL の CUI であるところの mysql コマンドを利用しているんだけど、テーブル名などの補完機能が PostgreSQL の psql コマンドと違っていてウニャウニャした気持ちになっている。 だったら psql コマンドで MySQL のテーブルを操作できたらいいんじゃね?と思って、mysql_fdw を試してみた。 最近の PostgreSQL には Foreign Data Wrapper(FDW : 外部データラッパ)という機能があって、PostgreSQL の外部に存在するデータベースからデータを引っ張ってきたりできるようになっている。 mysql_fdw というのは、この FDW を使って「Pos
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く