サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
katsusand.dev
はじめに本記事はPostgreSQL Advent Calendar 2020の 10 日目です。 PostgreSQL のメモリ管理についていろいろと壁にぶつかったのでわかる範囲で知見をまとめていきたいと思います。 PostgreSQL のバージョンは 13.1 で検証しています。 なぜメモリ管理を適切にする必要があるのかそもそもですが、なぜメモリ管理を適切にする必要があるのでしょうか。 簡潔に言うと パフォーマンスと安定性のため と言えるかと思います。 まず、データベースのデータはすべてファイルとしてディスクに保存することで永続化されます。 データを取得・更新する際にはディスクへの読み書きが発生するのですが、これはメモリに比べて非常に遅いことが知られています。 では、可能な限りメモリから読み書きするようにすればいいのかというと、通常データベースが扱うサイズは搭載メモリサイズよりも大きい
はじめにこの記事は PostgreSQL11 で検証しています。 ロールという概念PostgreSQL での権限の操作を行うにはまずロールという概念を知る必要があります。 ロールとは、簡単に言えばユーザーのようなもので「データベース全体に対する権限」と「オブジェクトに対する権限」の 2 通りの権限を持ちます。 通常、データベースのログインに使用しているのもこのロールです。 なぜ、ユーザーといわず、あえてロールかというと、ロールにはユーザーとグループという概念が内包されているからです。 ユーザーもグループもどちらもロールとして作られるものですが、ユーザーはグループに属し、グループの権限を継承することができます。 なのでロールとユーザーはイコールではなく、ロールというくくりの中にユーザーとグループがいることになります。 ロールの確認、作成、変更、削除ロールの確認\duメタコマンドを使うのが楽で
はじめにEagerload を使うと SQL クエリがごっそり減って気持ちいいですよね。 ただ、少し複雑な制約が入るとあれどうするんだっけ?ということがよくあったので、使用方法などを改めてまとめることにしました。 hasMany とは?といったリレーションの基本については説明していません。 Laravel5.5 で検証しています。 Eagerload の前にリレーションはなにを返すかを知る公式サイトにものっている次のような User モデルと posts という 1 対多のリレーションメソッドがあったとします。 <?php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model { /** * ユーザーの全ポストの取得 */ public function posts() { retur
はじめにrxjs6.3 で動作確認。 RxJS とはなにか非同期とイベントのための Observer パターンを使ったライブラリ。 イベントで渡ってきたデータを自由に加工することができるので、公式サイトでは「イベント用の Lodash」と紹介されています。 Think of RxJS as Loadash for events. 非同期といえば js にはすでに Promise や async/await などの仕組みがありますが、それらとは何が違い RxJS だと何が嬉しいんでしょうか。 また、イベントといえば click とかだと思いますが、イベントから渡ってきたデータの加工をわざわざ非同期用のライブラリでするってなんだ?って感じですね。 今回は基本の概念をひとつずつ次の順に見ていきます。 Observable:イベントや値を RxJS で受け取れる形にするOperators:受け取っ
Nginx で SSL を設定したときのまとめ。 なお、SSL と TLS の違いなどは本記事では除く。 SSL 通信は共通鍵と公開鍵を組み合わせて開始されるSSL は外部に通信内容が漏れないよう暗号化して通信するためのプロトコルで、基本はクライアントとサーバーで共通鍵暗号を使って通信内容を暗号化している。 ここで使用する共通鍵はもちろんクライアントとサーバーで共通の鍵でなければいけないが、SSL 通信の前に共通鍵を共有すると暗号化されてないために共通鍵が漏れる可能性がある。 そのため、共通鍵自体が漏れないために、SSL 通信の開始時点で共通鍵を受け渡すために公開鍵暗号を使用する。 下記の流れで SSL 通信の開始を行う。 引用: SSL の仕組み | 基礎から学ぶ SSL 入門ガイド | CSP SSL 1.クライアントからサーバーへの SSL 接続要求 2.サーバーからクライアントへ公
開発しているサイトで画像や動画などの静的ファイルを S3 に置き、HTML の img や video タグで S3URL を指定し読み込むということをやっていたんですが、この方法では予想よりもかなりお金がかかったため S3 との間に CloudFront を通したところ料金が激安になったという話です。 最初から CloudFront 使っとけって話なんですが、インフラの経験が足りずに一月ぐらい出遅れたという失敗談でもあります。 AWS の料金で DataTransfer が急増。タグ付けをすることでどのサービスが原因かを特定するAWS の利用料金がかなり上がったことは日時で Slack に通知されるようになっているため気づくことができました。 しかし、料金カテゴリにはプロダクト名やサービス名ではなく DataTransfer としか出ていなかったため、どのサービスが原因か特定する必要があ
はじめに本記事の内容は Laravel5.5 で検証しています。 DB にデータを保存するDB にデータを保存する方法は、大きく分けて Eloquent でモデルインスタンスを作成して保存する方法と、SQL で直で保存する方法の 2 通りあります。 Eloquent でモデルインスタンスを作成して保存する方法はさらにいくつかの方法に分かれます。 1. create メソッド // fillableかguardedのどちらかを指定する必要あり protected $fillable = ['name']; // protected $guarded = ['']; $flight = App\Flight::create(['name' => 'Flight 10']); モデルクラスから create メソッドを呼ぶことで、インスタンスの作成 → 属性の代入 → データの保存を一気通貫でや
このページを最初にブックマークしてみませんか?
『katsusand.dev』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く