タグ

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

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

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

  • タグ機能を実現するための便利なデータベース設計を3つ紹介 | colori

    AND検索 「CSS+HTML+JavaScript」で検索する場合は以下のようにします。 SELECT * FROM `delicious` WHERE tags LIKE "%CSS%" AND tags LIKE "%HTML%" AND tags LIKE "%JavaScript%" OR検索 「CSS|HTML|JavaScript」で検索する場合は以下のようにします。 SELECT * FROM `delicious` WHERE tags LIKE "%CSS%" OR tags LIKE "%HTML%" OR tags LIKE "%JavaScript%" 引き算検索 「CSS+HTML-JavaScript」で検索する場合は以下のようにします。 SELECT * FROM `delicious` WHERE tags LIKE "%CSS%" AND tags LI

  • データベース設計の際に気をつけていること - 食べチョク開発者ブログ

    皆さんこんにちは、エンジニアの西尾です。 新しい機能・サービスを開発する際、私は特にデータベース設計に気をつかいます。 データベースはシステムの土台です。 土台が不安定だと、その上に積み上げていくアプリケーションコードがいびつなものになり、つらい思いをします。 また、一度動き出してしまったシステムのデータベース設計を変えるのは、容易なことではありません。 データベース設計には”これだ!”という正解はないと思っています。 サービスの特徴、システムの性質、toB向け/toC向け、Readが多い・少ない、Writeが多い・少ない。 その他もろもろの背景により、データベース設計の仕方も変わってきます。 このテーブルは正規化していないから駄目だ、この設計はいわゆるポリモーフィック関連だから使ってはいけない、などということはありません。 アンチパターンと呼ばれるものも時と場合によっては正解になります。

    データベース設計の際に気をつけていること - 食べチョク開発者ブログ
  • [ Oracle ] SELECT FOR UPDATE 悲観的ロックによる損失は数千万円 – 偏差値40プログラマー

    Oracle は多くの大企業で採用されているデータベースです。保守料も高額ですので大企業くらいしか導入できないのことが実際のところではないでしょうか。保守料のかからない無償版という選択肢もありますが、以下のような制約もあるので使い辛いのではないでしょうか。 Oracle Database 11g Release 2 Express Edition の制約 サーバー:搭載CPU制限なし CPU:最大1CPUが使用可能 メモリ:最大1GBが使用可能 データベースサイズ:最大11GBが使用可能(10g XE は最大4GBでした) 対応OS:Windows 32bit, Linux 64bit 変更されていたりするかもしれませんので、あしからず とある有名な SIer が開発した高額なシステムの話 とある大手の SIer が作った超高額なシステムでの実際の話ですが、反面教師として記録しておきます。

    hiro14aki
    hiro14aki 2018/09/03
    []楽観ロックの話
  • とあるクエリを2万倍速にした話 -データベースの気持ちになる- 後編 - dwango on GitHub

    技術コミュニケーション室 OSSグループの髙﨑です。 記事は、とあるクエリを2万倍速にした話 -データベースの気持ちになる- 前編の続きです。 前回の記事でお話しした内容がPullRequestを作ったときの過程だったわけですが、 そのような結果に至った経緯、Index Only Scanを使わなかったPostgreSQL特有の事情について、 PostgreSQLのアーキテクチャなども交えもう少し詳しくお話させていただきます。 要するに 実行計画のコストとはレコードやindexの読み込み、フィルタ処理などからその実行にどの程度の時間が必要となるかの推定値 indexを張る際にはそのindexがどのように辿られるかを意識する必要がある 範囲検索される可能性があるカラムはindexの先頭にはあまり適さない PostgreSQLにおけるIndex Only Scanは新しい/更新頻度の高いデー

    とあるクエリを2万倍速にした話 -データベースの気持ちになる- 後編 - dwango on GitHub
  • 若手プログラマー必読!5分で理解できるER図の書き方5ステップ

    データベース設計の基中の基であるER図。ER図を書きたいけど、「記法が分からない」「どういうステップで書けば良いか分からない」という若手エンジニアも多いのではないでしょうか。 ER図は10種類近くあり、種類によって記法が異なります。このことが難しいイメージを与えていますが、実はそれほど難しいものではありません。覚えれば良いER図は2種類だけです。 しかも、この記事で解説している基礎知識を押えれば、たった5つのステップで作成することができます。 この記事では、ER図の基礎知識からER図の書き方まで、エンジニアが抑えておくべきER図の全知識をどこよりも分かりやすく解説します。 この記事を読み終えたとき、若手エンジニアもER図を書けるようになっているでしょう。 この記事を参考に最適なデータベース設計を進めて下さい。 1.ER図とは ER図とは、「データベース設計(データモデリング)で使う設計

    若手プログラマー必読!5分で理解できるER図の書き方5ステップ
  • 複合インデックスの正しい列の順序

    データベースは、プライマリキーに対して自動的にインデックスを作成しますが、キーが複数の列からなる時は、さらに手動で調整をする 余地があります。この場合、データベースはプライマリキーの全ての列にいわゆる 連結インデックス(あるいはマルチカラム インデックス、複合インデックス)を作成します。 複合インデックスの列の順番は、インデックスの使い勝手に大きな影響を及ぼすので、注意して決定する必要があります。 例として、企業が合併した場合を考えてみましょう。他の会社の社員が 加わったので、EMPLOYEESテーブルが10倍の大きさになったと しましょう。ここで問題が発生します。EMPLOYEE_IDが、 それぞれの会社で一意になっていなかったのです。子会社IDのような追加の識別子で、プライマリキーを拡張する必要があります。このため、プライマリ キーは、以前からのEMPLOYEE_IDに加えて、一意性を

    複合インデックスの正しい列の順序
  • NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現

    モバゲーで知られるDeNAは、バックエンドデータベースにNoSQLを使っていません。なぜか? それはMySQL/InnoDB 5.1の環境で秒間75万クエリという、多くのNoSQLでも実現できないような高性能を実現しているから。DeNAの松信嘉範(まつのぶよしのり)氏は、自身のブログにこんな内容のエントリ「Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server」(英語)をボストしています。 Yoshinori Matsunobu's blog: Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server 松信氏が指摘するように、大規模なネットサービスを提供している企業の多くは分散環境で

    NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現
  • 1