SQL

Redis

【Redis】RedisとMemcached、どちらを選ぶべきか比較検証

こんにちは、かつコーチです。これまで5回にわたって、Redisの基本・データ構造・キャッシュ戦略・セッション管理とPub/Subを解説してきました。Redisシリーズの最終回となる今回は、キャッシュ用途でよく比較されるMemcachedとの...
Redis

【Redis】Redisをセッション管理・Pub/Subに使う

こんにちは、かつコーチです。ここまでの記事で、Redisの基本操作・データ構造・キャッシュとしての使い方を扱ってきました。今回はもう一歩踏み込んで、実務でよく採用される2つの用途、セッション管理とPub/Subを扱います。いずれも前提知識と...
Redis

【Redis】Redisをキャッシュとして使う:TTL戦略の基本

こんにちは、かつコーチです。「とりあえずRedisを導入したものの、TTL(有効期限)を何秒にすればいいか分からない」そんな相談を受けたことが何度かあります。Redisをキャッシュとして使う上で、TTL戦略(キーの有効期限をどう設計するか)...
Redis

【Redis】Redisのデータ構造(List・Hash・Set・Sorted Set)の使い分け

こんにちは、かつコーチです。前回までの記事で、Redisの基本コマンドSET・GET・EXPIREを扱いました。これらは1つのキーに1つの値(文字列)を対応させる、最もシンプルな使い方でした。ですがRedisの本当の強みは、実はここから先に...
Redis

【Redis】Redisのインストールと基本コマンド(GET・SET・EXPIRE)

こんにちは、かつコーチです。前回の記事で、RedisがインメモリKVS(メモリ上でキーと値のペアを管理する仕組み)であることを解説しました。今回は実際に手を動かして、Redis 7.x系をインストールし、基本コマンドであるGET・SET・E...
Redis

【Redis】Redisとは?インメモリKVSを初心者向けに解説

こんにちは、かつコーチです。「Redisってキャッシュに使うらしいけど、MySQLとかPostgreSQLと何が違うの?」そんな疑問を持ったことはないでしょうか。私自身、初めてRedisという名前を聞いたときは、「もう1つのデータベースが増...
Oracle Database

【Oracle Database】Oracleと他RDBMS、企業システムでどちらを選ぶべきか比較検証

こんにちは、かつコーチです。これでOracle Database編は6本目、最終回です。「新規案件のDB、OracleとMySQL・PostgreSQLどっちにしよう」エンタープライズ寄りの案件に関わるようになると、この選定に頭を悩ませる場...
Oracle Database

【Oracle Database】表領域とユーザー・権限管理の基本

こんにちは、かつコーチです。Oracle Database編の5本目です。今回は上級者向けの内容として、Oracle独自の表領域設計と、ユーザー・権限管理を扱います。PL/SQLの基本、シーケンス・ROWNUM・ROWIDの違いを理解してい...
Oracle Database

【Oracle Database】シーケンスとROWNUM・ROWID、MySQL/PostgreSQLとの違い

こんにちは、かつコーチです。Oracle Database編の4本目です。MySQLやPostgreSQLに慣れている方が最初に戸惑いやすいのが、連番の採番方法と、ROWNUM・ROWIDという独自の概念です。この記事では、他のRDBMSと...
Oracle Database

【Oracle Database】PL/SQLの基本:手続き型でロジックを書く

こんにちは、かつコーチです。Oracle Database編の3本目です。今回は、Oracle Database最大の特徴といっても過言ではないPL/SQL(Procedural Language extensions to SQL)を解説...
Oracle Database

【Oracle Database】SQL*Plus・SQL Developerの基本操作

こんにちは、かつコーチです。Oracle Database編の2本目です。前回はOracle Databaseとは何かを解説しました。今回は、Oracle Databaseに接続してSQLを実行するための代表的な2つのツール、SQL*Plu...
Oracle Database

【Oracle Database】Oracle Databaseとは?エンタープライズ商用RDBMSを初心者向けに解説

こんにちは、かつコーチです。SQL基礎編の35本、お疲れさまでした。ここからは新シリーズとして、Oracle Database(オラクル社が開発・販売する商用のリレーショナルデータベース管理システム)を全6本で解説していきます。「MySQL...
MongoDB

【MongoDB】MongoDBとPostgreSQL(JSONB)、どちらを選ぶべきか比較検証

こんにちは、かつコーチです。これでMongoDB編は10本目、最終回です。「MongoDBを採用しようと思っていたけど、PostgreSQLのJSONB型でも同じことができるのでは」。PostgreSQL編の最終回(20本目)でも同じテーマ...
MongoDB

【MongoDB】レプリカセットの基本:MongoDBの可用性を確保する仕組み

こんにちは、かつコーチです。本番運用のMongoDBで避けて通れないのがレプリカセット(同じデータを複数のサーバーに複製し、1台が落ちても自動的に処理を継続する仕組み)です。単一サーバー運用のまま本番投入してしまい、サーバー障害でサービス全...
MongoDB

【MongoDB】MongoDBのスキーマ設計:埋め込み(Embedding)と参照(Referencing)の使い分け

こんにちは、かつコーチです。MongoDBのスキーマ設計で最初にぶつかる壁が、「関連するデータを1つのドキュメントに埋め込む(Embedding)か、別コレクションに分けて参照(Referencing)するか」という判断です。RDBMSの正...
MongoDB

【MongoDB】MongoDBのインデックスの基本とパフォーマンス改善の考え方

こんにちは、かつコーチです。「検索は動くけど、データが増えたら急に遅くなった」という相談を、MongoDBを使い始めた方からよく受けます。原因のほとんどはインデックス(検索を高速化するためのデータ構造。SQLのB-Treeインデックスと似た...
MongoDB

【MongoDB】集約パイプライン(Aggregation Pipeline)の基本と実践的な使い方

こんにちは、かつコーチです。MongoDBでの集計処理といえば、まず名前が挙がるのが集約パイプライン(複数の処理ステージを連結してドキュメントを段階的に加工・集計する仕組み)です。SQLのGROUP BYに慣れている方ほど、最初にこの仕組み...
MongoDB

【MongoDB】クエリ演算子(gt・in・$regex等)の使い方

こんにちは、かつコーチです。前回はCRUD操作の基本を解説し、find({ status: "active" })のような単純な一致条件での検索まで扱いました。今回は一歩進んで、SQLの>やIN、LIKEに相当するクエリ演算子の使い方を解説...
MongoDB

【MongoDB】CRUD操作の基本(insertOne・find・updateOne・deleteOne)

こんにちは、かつコーチです。前回はドキュメントとBSONの基礎を解説しました。今回はいよいよ実践編として、MongoDBのCRUD操作(Create・Read・Update・Delete、データの作成・読み取り・更新・削除)をmongosh...
MongoDB

【MongoDB】コレクションとドキュメント、BSONの基本

こんにちは、かつコーチです。前回はDockerとmongoshを使って、MongoDBに接続するところまで進めました。今回は一歩踏み込んで、MongoDBのデータ構造の核心であるコレクション・ドキュメント・BSONについて整理します。「JS...