#author("2023-03-10T02:36:16+00:00","default:admin","admin") #author("2023-06-09T01:54:22+00:00","default:admin","admin") -[[【2021年】データベースソフトウェアのトレンド動向:https://dekiruengineer.com/engineer/2021_database/]] -[[データベースはいまだ進化中、クラウドシフトでなくなるDB管理者の仕事とは:https://xtech.nikkei.com/atcl/nxt/column/18/01956/022100002/]] -[[Firebird vs. MariaDB vs. PostgreSQL:https://db-engines.com/en/system/Firebird%3BMariaDB%3BPostgreSQL]] -[[OSSデータベース調査 RDBMS編:https://qiita.com/kanegoon/items/9597a4f70033b686ff16]] -[[主なRDB(Oracle, MySQL, PostgreSQL)の機能比較:https://qiita.com/kamihork/items/deeaf449254e3845311d]] -[[MariaDB vs MySQL vs PostgreSQL比較:最適なRDBは?ベンチマーク付選択フローチャート:https://vpshikaku.com/mariadb-mysql-postgresql/]] -[[第1回:各DBにかかるコストについて(ライセンス費用、保守費用):https://www.system-exe.co.jp/eitd01/]] -[[System Properties Comparison MariaDB vs. Microsoft SQL Server vs. PostgreSQL:https://db-engines.com/en/system/MariaDB%3BMicrosoft+SQL+Server%3BPostgreSQL]] *ライセンス [#fac4b3c3] -[[データベースのライセンスについて:https://teratail.com/questions/71976]] -[[MySQL - ライセンス早分かり:http://www.softagency.co.jp/products/mysql/license]] *構築のポイント [#kdc32dce] ** スキーマ・クエリ [#ie6b7b45] -改善すべきクエリ --実行回数(Count)の多いクエリ --実行時間(Time)の長いクエリ --ロック時間(Lock)の長いクエリ -インデックスが使われていないクエリを調べ上げ、適切なインデックスを張っていく -テーブル分割 --1テーブルのレコード件数は可能な限り少なくする --レコード件数が多い場合は、期間やデータ種別で分割することを検討 -ダブルバッファ --テーブルのJOINが頻繁に行われる場合は、JOINしたテーブルを作成することを検討 --SELECTするキーによっては、キーとなる値を格納するカラムを用意して予め値をセットしておき、インデックス化しておいて、SELECTはそのインデックスで行う -インデックスの作成 --それぞれの処理に特化したインデックスの作成を検討 --インデックス的なテーブルの作成を検討 -集計処理についてはトリガ機能の活用を検討 -件数情報は冗長に持つ(○件以上のみ表示するようなアプリで有効) ** サーバ [#x2170848] -データサイズ<メモリ容量 -更新系と参照系を分ける -参照系が多い場合はスレーブサーバを増設 ** その他 [#ca2dc08d] -データを保存するのはデータベースでなくたっていい --行指向テキスト --key-valueストレージ(Berleley DBなど) ---[[Key-Value Store勉強会に行ってきました:http://blog.katsuma.tv/2009/02/key_value_store_study.html]] --Web API経由でアクセスする何か *行指向・列指向 [#d69534f7] -[[列指向データベースと行指向データベース:https://support.treasuredata.com/hc/ja/articles/214844948-%E5%88%97%E6%8C%87%E5%90%91%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%A8%E8%A1%8C%E6%8C%87%E5%90%91%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9]] *時系列データベース [#bae9a9a3] **[[InfluxDB:https://www.influxdata.com/]] [#mc402816] -[[InfluxDBの紹介:https://www.sraoss.co.jp/tech-blog/influxdb-2/influxdb-introduction/]] -[[InfluxDB - CTC:https://www.ctc-g.co.jp/solutions/influxdb/]] -[[InfluxDBについて最初に知るべき10のこと:https://qiita.com/nmrmsys/items/cdeb4afa76c591acfd3f]] * 製品 [#ib06fa8c] -[[PostgreSQLとMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較!:https://employment.en-japan.com/engineerhub/entry/2017/09/05/110000]] -[[MySQL:http://www-jp.mysql.com/]] -[[PostgreSQL:http://www.postgresql.org/]] -[[Oracle:http://www.oracle.com/lang/jp/index.html]] -[[Sybase:http://www.sybase.jp/]] -[[Teradata:http://www.teradata-j.com/]] -[[SQL Server:http://www.microsoft.com/japan/SQL/default.mspx]] ** 超高速データベース [#o88b2bf9] ほんとに高速かどうかは知りません。あしからず。 -[[超高速データベース - Wikipedia:http://ja.wikipedia.org/wiki/%E8%B6%85%E9%AB%98%E9%80%9F%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9]] -[[高速機関5:http://www.kousokuya.co.jp/product1.html]] -[[DAYDA.LabooII:http://www.turbo-data.co.jp/j/product/daydalaboo2.html]] -[[Oracle TimesTen In-Memory Database:http://www.oracle.com/technology/global/jp/products/timesten/index.html]] ** 埋め込み用DB [#da7bfda7] -[[In-memory database - Wikipedia:http://en.wikipedia.org/wiki/In-memory_database]] *理論 [#p37d8461] **CRUD [#af994bb2] -[[CRUD - Wikipedia:https://ja.wikipedia.org/wiki/CRUD]] -[[【MySQL入門③】データベースの基本操作CRUDを解説!:https://snome.jp/database/db-intro-3/]] -[[【SQL】SQLってCRUD以外に何があるの?と思った時に読むQiita:https://qiita.com/akane_kato/items/635378b04e6a31ada651]] ***CRUD図 [#re67b808] -[[CRUD図の読み方と書き方:https://segakuin.com/diagram/crud.html]] **マスタデータ/トランザクションデータ [#g7407db5] -[[非エンジニアでも分かる!マスタデータとトランザクションデータの基礎知識:https://pimlus.com/media/1766/]] -[[マスターデータとトランザクションデータって結局なんぞや:http://gomocool.net/gomokulog/?p=906]] -[[「マスタデータ」と「トランザクションデータ」の違いとは?分かりやすく解釈:https://meaning-dictionary.com/%E3%80%8C%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF%E3%80%8D%E3%81%A8%E3%80%8C%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%87%E3%83%BC%E3%82%BF%E3%80%8D/]] **正規化 [#q4028c97] -[[データベースの正規化:https://oss-db.jp/dojo/dojo_info_04]] **キー・インデックス [#sdd05194] -[[主キーとIndexについて整理する:https://qiita.com/pirorirori_n712/items/b47ade3fdaf8b4a109ba]] -[[インデックスとは?仕組みをわかりやすく解説:https://products.sint.co.jp/siob/blog/index]] **物理削除と論理削除 [#w256f147] -[[SQL で理解する DB の物理削除と論理削除:https://zenn.dev/kotahashihama/articles/f9676a52bd83c9]] -[[「論理削除」と「物理削除」の違い:https://wa3.i-3-i.info/diff598delete.html]] -[[データベースの論理削除と物理削除:https://blog.webcreativepark.net/2008/05/26-103152.html]] **結合 [#qbb49478] -[[内部結合と外部結合の違い:https://medium-company.com/%E5%86%85%E9%83%A8%E7%B5%90%E5%90%88-%E5%A4%96%E9%83%A8%E7%B5%90%E5%90%88-%E9%81%95%E3%81%84/]] **外部キー [#t44a3b60] -[[【SQL入門】外部キーとは?主キーとの関係や作成方法について解説:https://www.sejuku.net/blog/54072]] **トランザクション管理 [#e373d023] -[[【データベース】トランザクション管理をわかりやすく説明:https://blog.senseshare.jp/database-transaction.html]] *設計 [#s69e297e] -[[【サルが書く】DB設計を達人に学んだのでまとめてみた:https://qiita.com/hajimemath/items/ad5ff1dc96f50287bc00]] -[[データベース設計におけるNULL:https://scrapbox.io/kawasima/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E8%A8%AD%E8%A8%88%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8BNULL]] **命名規則 [#mca3d77c] -[[Ruby on Rails の命名規則:https://guides.rubyonrails.org/active_record_basics.html#naming-conventions]] --テーブル名 ---ドメインオブジェクト名のスネークケースの複数形 ex) users, user_images --カラム名 ---ドメインオブジェクトのプロパティ名のスネークケース ex) name, user_id **外部キー [#z1db79bb] -[[「外部キー Night」に参加しました:http://makopi23.blog.fc2.com/blog-entry-163.html]] -[[外部キー制約でパフォーマンスが上がるパターンとその知見:https://qiita.com/kik4/items/e24539f4c4c002e3dd26]]