タグ

dbに関するknoのブックマーク (54)

  • リレーショナル・データベースの世界

    序文 私の仕事は、DBエンジニアです。といっても別に望んでデータベースの世界へきたわけではなく、当初、私はこの分野が面白くありませんでした。「Web系は花形、データベースは日陰」という言葉も囁かれていました。今でも囁かれているかもしれません。 ですが、しばらくデータベースを触っているうちに、私はこの世界にとても興味深いテーマが多くあることを知りました。なぜもっと早く気づかなかったのか、後悔することしきりです。 もちろん、自分の不明が最大の原因ですが、この世界に足を踏み入れた当時、先生も、導きの書となる入門書もなかったことも事実です。 今でこそバイブルと仰ぐ『プログラマのためのSQL 第2版』も新入社員には敷居が高すぎました (2015年2月追記:その後、自分で第4版を訳出できたのだから、 人生は何があるか分からないものです)。 そこで、です。このサイトの目的は、データベースの世界に足を踏み

    kno
    kno 2024/02/29
  • 2004年稼働の「ZOZOTOWN」を5年越しで刷新中、AWS上でマイクロサービスを推進

    年間1000万人超が買い物をする衣料品EC(電子商取引)モール「ZOZOTOWN(ゾゾタウン)」。運営元のZOZOは現在、同社初となるZOZOTOWNのシステム刷新を5年越しで進めている。オンプレミス環境で2004年に構築したシステムをつくり替え、処理能力の引き上げと合わせて、アプリケーションの開発効率を向上させる狙いがある。 「開発とビジネス部門を密に連携する『BizDevOps』という方針の下、ユーザーに対して質的な価値を素早く提供できるようにしたい」。プロジェクトを率いる瀬尾直利技術部長兼VPoEはシステム刷新の背景をこう語る。 ストアドプロシージャーをJavaに書き換えるも性能出ず システム刷新は現在も続いており、目指す姿までの進捗率は50%程度という。これまでの取り組みを振り返ると大きく2つのフェーズに分かれる。第1期に当たる2017年から2019年にかけては、オンプレミ

    2004年稼働の「ZOZOTOWN」を5年越しで刷新中、AWS上でマイクロサービスを推進
    kno
    kno 2022/10/07
    “「ストアドプロシージャーを剥がしてもなお(Azure上の)DBの負荷が高く、Azure上では本番リリースに至らなかった」”
  • WHERE句を忘れただけなのに - Qiita

    ※前にいた会社での実話を元にしています(細かい部分は変えています) ※「こうはなったらアカン」という反面教師として読んでくださいやで… 初出社ワイ ワイ「HTMLコーダーの無職やめ太郎です!」 ワイ「今日からよろしくお願いしますやで!」 社長「おう、よろしくな」 社長「ほな早速・・・PHPでバックエンドの開発を頼むわ、一人で」 ワイ「ファッ!?」 ワイ「でもワイ、バックエンドの経験ないですよ・・・?」 ワイ「ちょっとはPHPできますけど・・・」 社長「チョットデキル?」 社長「ほな大丈夫やないか」 ワイ「いや、ちゃいます」 ワイ「初心者レベルってことですがな」 社長「ほな大丈夫とちゃうか」 ワイ「そうですわ」 ワイ「いわゆる完全に理解したレベルってことですわ」 社長「完全に!?」 社長「ほな大丈夫やないか」 ワイ「なんでそうなりますねん」 ワイ「とにかく、一人バックエンドは無理ですって・

    WHERE句を忘れただけなのに - Qiita
    kno
    kno 2022/05/24
    タイトルだけでホラー…恐ろしくて中身が読めないw
  • 1文字でSQLを200倍遅くする方法

    こんにちは、19のSysAd班の翠(sappi_red)です。普段はtraQのフロントエンドの保守を行ったりしています。 こんばんは、19のSysAd班のtemmaです。普段は普段どおりのことをしています。この記事の面白い部分はすべて僕が書いています。面白くないところは翠君が書いています。 この記事では、日々パフォーマンスに頭を悩ませる開発者の方のために、ワンタッチで劇遅SQLを200倍高速でキュートなSQLに劇的ビフォーアフターする方法を紹介します。 「おいおいおい、遅くしたくて記事を読み始めたのに話が違うじゃないか💢」と思ってるそこのあなた👈 早くできるということは遅くもできるんですね。 TL;DR ここにテーブルがあります。 CREATE TABLE messages ( id CHAR(36) NOT NULL PRIMARY KEY, text TEXT COLLATE ut

    1文字でSQLを200倍遅くする方法
    kno
    kno 2022/05/17
    “結論としては、マイクロ秒を超える精度の値を渡すと、Truncateが発生しインデックスが使われなくなるようです。”カラムの型に合わせないとインデックス効かない
  • 齊藤明紀 on Twitter: "客が逃げにくいようにしてからバンバン値上げというORACLE DB商法が怖いのでOracle Cloudは使う気になれない。「複数のOracleDB利用システムがあれば、全部保守に入るか全部入らないかどっちかしか選べない」とかいろ… https://t.co/PghH9SiMx0"

    客が逃げにくいようにしてからバンバン値上げというORACLE DB商法が怖いのでOracle Cloudは使う気になれない。「複数のOracleDB利用システムがあれば、全部保守に入るか全部入らないかどっちかしか選べない」とかいろ… https://t.co/PghH9SiMx0

    齊藤明紀 on Twitter: "客が逃げにくいようにしてからバンバン値上げというORACLE DB商法が怖いのでOracle Cloudは使う気になれない。「複数のOracleDB利用システムがあれば、全部保守に入るか全部入らないかどっちかしか選べない」とかいろ… https://t.co/PghH9SiMx0"
    kno
    kno 2021/09/05
    こういうのがあるから生SQLじゃなくORM使いたいんだよなあ
  • アマゾンがついにOracle DBを「全廃」、成功のポイントは社内失業対策

    米アマゾン・ドット・コム(Amazon.com)がついに米オラクル(Oracle)に「勝利宣言」をした。アマゾンは2019年10月15日(米国時間)、社内からOracle DatabaseDB)を「全廃」したと発表したのだ。最盛期には約7500ものOracle DBが存在し、eコマースや物流、決済、受発注、広告、動画・音楽配信などのバックエンドで長年使われてきた。それらはほぼすべて姿を消したという。 Oracle DBからの移行先は、アマゾンがクラウドサービスAmazon Web Services(AWS)で提供するDBサービスだ。今後はMySQLやPostgreSQLと互換性のある分散型リレーショナルDBRDB)サービスのAmazon Auroraをはじめ、NoSQLDBサービスであるAmazon DynamoDB、データウエアハウス(DWH)のサービスであるAmazon Reds

    アマゾンがついにOracle DBを「全廃」、成功のポイントは社内失業対策
    kno
    kno 2019/10/18
    “廃棄したOracle DBの総容量は75ペタバイト(PB)にも及ぶ”ひー/OracleからAWSの移行ノウハウもたまったべな
  • PostgreSQL 11が正式リリース。ハッシュパーティショニングやJITコンパイルによる高速化、ストアドプロシージャでのトランザクションサポートなど

    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

    PostgreSQL 11が正式リリース。ハッシュパーティショニングやJITコンパイルによる高速化、ストアドプロシージャでのトランザクションサポートなど
    kno
    kno 2018/10/19
  • PostgreSQLとMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較!|ハイクラス転職・求人情報サイト AMBI(アンビ)

    PostgreSQLMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較! オープンソースのデータベースとしてよく比較されるPostgreSQLMySQL。どんな長所・短所があるのでしょう? それぞれの専門家による対談で明らかにします。 エンジニアとして働いていると必ず直面する悩み。それは、「どのリレーショナル・データベース(以下、RDB)を選ぶのが最善なのか?」です。 RDBごとに長所と短所は異なっています。そのため自社サービスにマッチしないRDBを選んでしまうと、それがボトルネックとなり開発・運用にトラブルが生じるケースは少なくありません。 なかでもよく比較検討されるのが、PostgreSQLMySQL。ともにオープンソースRDBのデファクトスタンダードであり、高い性能と数多くの機能を持っています。 では、両者は具体的にどのような長所・短所があるのでしょうか。そ

    PostgreSQLとMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較!|ハイクラス転職・求人情報サイト AMBI(アンビ)
    kno
    kno 2017/09/05
  • なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策|ハイクラス転職・求人情報サイト AMBI(アンビ)

    なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策 『SQLパフォーマンス詳解』の翻訳者の松浦隼人さんに、8つの「SQLが重たくなる原因とその対策」を聞きました。システムのボトルネックになるような「問題のあるSQL」を回避するノウハウを学びましょう。 データの操作や定義をする言語「SQL」は、どのような領域を担うエンジニアにとっても必修科目です。しかし、その仕様をきちんと理解し、パフォーマンスに優れたSQLを書ける方はそれほど多くありません。問題のあるSQLを書いてしまい、知らぬ間にそれがシステムのボトルネックになってしまう事態はよく発生します。 では、どうすればそうした事態を回避できるのでしょうか? そのノウハウを学ぶため、今回は『SQLパフォーマンス詳解』の翻訳者であり、自身もエンジニアでもある松浦隼人(まつうら・はやと/@dblmkt)さんに8つ

    なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策|ハイクラス転職・求人情報サイト AMBI(アンビ)
    kno
    kno 2017/06/26
  • MySQL のサブクエリって、ほんとに遅いの? | DevelopersIO

    こんにちは、みかみです。 今日のクラスメソッドのAWSおみくじ、RDS(t1.micro)でしたー!(昨日は Aurora!@@v はじめに 前職@アプリ開発時、MySQL のクエリチューニングをさせていただく機会がありました。 ユーザー入力のキーワードで全文検索 → 見つかったレコードを返すのですが、所要時間、約3分。。 Apache タイムアウトして画面真っ白。。。(泣きそうでした><。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリの

    MySQL のサブクエリって、ほんとに遅いの? | DevelopersIO
    kno
    kno 2017/06/03
    5.6なら早いらしい
  • 怒りを通り越してあきれるOracleユーザー

    Oracle DatabaseDB)は信頼性や可用性が高く、当社のシステムには欠かせない。しかしここ数年、保守料が右肩上がり。IT予算に占めるOracle DBの保守料金の割合が増えて困っている」。 製造業A社のシステム部長は悩んでいた。会計や販売管理、生産管理など社内の主要なシステムは全てOracle DBを利用している。しかし開発時期はバラバラで、システム構築を依頼したITベンダーもシステムごとに異なっていた。Oracle DBのライセンスはシステム構築に合わせて、その都度購入している。システムごとに同じOracle DBとはいえ、バージョンは異なり、システム部門の保守作業も手間になっていた。 「Oracle DBを使っているシステムの維持費用を削減したい」。こう考えたシステム部長は、安定稼働していて、今後も大きな業務機能の変更もないと想定できるシステムのデータベースの保守契約を止

    怒りを通り越してあきれるOracleユーザー
    kno
    kno 2017/03/13
  • MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響

    攻撃に利用された場合、root権限で任意のコードを実行され、サーバを制御される可能性が指摘されている。 米Oracle傘下のオープンソースデータベース「MySQL」に未解決の脆弱性が見つかったとして、セキュリティ研究者が9月12日に概略やコンセプト実証コードを公開した。サイバー攻撃に利用された場合、root権限で任意のコードを実行され、サーバを制御される可能性が指摘されている。 研究者のDawid Golunski氏が公開した情報によれば、MySQLの脆弱性は複数発見され、、中でも特に深刻な1件については、リモートの攻撃者がMySQLの設定ファイルに不正な内容を仕込むSQLインジェクション攻撃に利用される恐れがある。 この脆弱性は、MySQLの最新版を含む5.7系、5.6系、5.5系の全バージョンに、デフォルトの状態で存在する。現時点でOracle MySQLサーバの脆弱性修正パッチは存在

    MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響
    kno
    kno 2016/09/13
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    kno
    kno 2016/07/28
  • MySQL, postgreSQL, SQLiteへのSQLアクセスを5分でAPI化するPHPアプリケーションを作ってみた - Qiita

    MySQL, postgreSQL, SQLiteへのSQLアクセスを5分でAPI化するPHPアプリケーションを作ってみたPHPMySQLPostgreSQLAPISQLite3 MySQL, postgreSQL, SQLiteへのSQLアクセスを簡単にAPI経由でできるようにするPHPアプリケーションを作ったので、公開してみました。 https://github.com/harasho2016/simple-API-Maker このアプリケーションをサーバーに設置して、設定ファイルにDBへのアクセス情報を設定すれば、SelectとかDeleteとかInsertとかUpdateとかそういうよくある操作であれば、特に何の設定もなくAPI経由で操作できるようになります。 たぶん似たようなものがあるかもしれないですが、とりあえず試しで作ってみました。使っていただけると幸いです。あと改良点とか似

    MySQL, postgreSQL, SQLiteへのSQLアクセスを5分でAPI化するPHPアプリケーションを作ってみた - Qiita
    kno
    kno 2016/05/03
  • MySQL と寿司ビール問題 - かみぽわーる

    MySQL と Unicode Collation Algorithm (UCA) - かみぽわーる に関連するトピックで、 MySQL には寿司ビール問題というのがある。 寿司ビール問題どっかで詳しくお話を聞くべきだよなぁ。。。— RKajiyama (@RKajiyama) March 18, 2015 これはどういう問題かというと、 MySQL の Unicode では binary collation にしてコードポイントで比較しないと🍣と🍺に限らず絵文字が同値判定されるという問題です。 あれ? MySQL の utf8mb4 charset って、4バイト文字同士を比較すると同じ文字扱いされる? SELECT '🍣'='🍺' → 1 MySQL的には寿司とビールは同じ扱い。— とみたまさひろ (@tmtms) December 22, 2014 MySQLで select

    MySQL と寿司ビール問題 - かみぽわーる
    kno
    kno 2015/03/23
    うわあ
  • 主キーはインデックスではない - 設計者の発言

    仕事柄、奇妙なDB構造を目にすることが多い。どういう発想からそんな設計がされるのかを理解したいと思っていたのだが、モデラー仲間の秋里さんが先日うまい指摘をした。「主キーをインデックスみたいなものと勘違いしているからではないでしょうか」。インデックス(キー)というのは、レコードの並び順を規定するキーのことだ。 たしかに思い当たる節がある。「こんな順にレコードが並んでいれば処理上都合がよさそうだ」という考えで主キーが設定される。さらに主キーはユニーク制約でもあるので、重複が起こらないように「多め」に項目を突っ込んでおく。つまり「ユニーク制約をともなう代表的インデックス」程度に主キーが理解された結果として、グダグダなDB構造が出来上がるのではないか。 じっさい、昔こんなことがあった。{a,b,c,d}の複合主キーをもつテーブルXがある。ところが、別のテーブルYからテーブルXの特定レコードにアクセ

    主キーはインデックスではない - 設計者の発言
    kno
    kno 2014/08/27
  • WindowsでPostgreSQLを使ってみよう — Let's Postgres

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 Windows Vista へ PostgreSQL をインストールし、データベースを利用するための環境を整えます。インストールには EnterpriseDB 社のバイナリ・パッケージを使います。解説の最後で、初期設定やデータの移動に関する、よくある質問についても補足します。 インストールの流れ 最初にインストールが何を行うのかと、インストールされるファイルを整理しておきます。PostgreSQL サーバ体に関しては、ウィザードに従えば一括でインストールされます。 ダウンロード バージョン 8.4 では、Windows 用のパッケージは EnterpriseDB 社によりメンテナンスされています。コミュニティのダウンロードページから辿れるインストーラを利用するのが手軽です。postgresql-8.4.0-1-windows.exe

    kno
    kno 2013/06/26
  • MySQLに纏わる10の都市伝説

    誰の口から飛び出したのかは定かではないが、巷ではMySQLにまつわる様々な「都市伝説」がまことしやかに囁かれているようだ。恐らくMySQLに対する理解が低い人や、MySQLがあまり好きではない面々によってFUDっぽく言われているのだと思うが、世の中にはそのような「都市伝説」を真に受けてしまう人が居るのもまた事実であである。MySQLにおける昨今の開発スピードには目覚ましいものがあり、MySQLは性能・安定性・使い易さ共に進化し続けている。(特に先日リリースされたMySQL 5.5は性能・安定性・使い易さを両立している優れたバージョンだ!!)しかし「都市伝説」で語られることは総じて「MySQLはダメな子ちゃん」であるという烙印を押すものばかりであり、MySQLerとしてはそのような言われ無き汚名を全身全霊をもって晴らさなければならない使命を背負っている。そこで、今日はMySQLについて語られ

    MySQLに纏わる10の都市伝説
    kno
    kno 2009/12/18
    今のはどうなってんのw
  • 真にスケーラブルなWebアプリケーションを作るには?という話題で盛り上がった件 - Tous Les Jours 攻防記

    先週末は上京してRubyKaigiに参加してきました。 運よくLT枠をいただくことができたので、タイトルのようなテーマで(結構紆余曲折があって、当初の想定から逸れてしまった...)プレゼンさせてもらうことができました。 話の流れとしては、 「WebアプリケーションのボトルネックはRDB」 ↓ 「RDBってAmazonEC2みたいなHaaSではスケールしないよね。」 ↓ 「当に(アプリのコードをそのままで)スケールさせようと思ったら、AmazonSimpleDBのようなクラウドDBを使うしかない」 ↓ 「SimpleDBMySQLより一桁以上遅いから、単純にRDBSimpleDBに置き換えると、えらいことになる」 ↓ 「SimpleDBへのアクセスを極力少なくするため、リクエストはMemcachedとかでキャッシュしまくる必要があるね」 ↓ 「このあたりを今Lang-8で実験している。

    真にスケーラブルなWebアプリケーションを作るには?という話題で盛り上がった件 - Tous Les Jours 攻防記
    kno
    kno 2009/07/21
  • mysqlのint(11)の11

    MySQL Manual | 6.2.1 数値型 MySQL には、INT(4) のように、型の基キーワードに続いて整数値の表示幅をかっこ内に指定できるオプションがあります。このオプションの表示幅の指定は、カラムに指定された幅より小さい幅を持つ値で表示の左側を埋める目的で使用されますが、そのカラムに格納できる値の範囲が制限されたり、そのカラムに指定された幅を超える幅を持つ値の桁数が制限されたりすることはありません。オプションの拡張属性 ZEROFILL と組み合せて使用した場合、デフォルトのスペースに代わってゼロが埋め込まれます。けっこう勘違いしている人がいそうなのですが、mysqlの型でint(?)とか、?に数字を入れますが、この数字は上記の通りZEROFILLをした際にスペースに代わってゼロが埋め込まれる際の幅なのです。自分は勘違いというかあまりよくわかっていませんでした…。 つまり

    kno
    kno 2009/05/19
    な、なんだtt(ry