コードロード

エラー討伐

2023-01-01から1年間の記事一覧

【データベース】ロック(排他制御)

複数ユーザーが同時にDB更新しても矛盾が起きないようにする仕組み ロックの種類 共有ロック(READロック) 他ユーザーのSELECTだけ認める ユーザーのログイン処理とか 占有ロック(WRITEロック) 他ユーザーの一切の処理を認めない ECサイト等で在庫数で矛…

パーティションでDBの検索速度を速める

パーティションとは DB検索を速くするために、テーブルを内部的に分割する技術のこと。 インデックスでも速くならない場合の検討材料 性能の向上 テーブルの分割により、アプリケーションからのSQLアクセスにおいて、検索性能の向上が見込まれます。性能向上…

データベースの種類

復習 階層型 ツリー構造:1本の幹から複数の枝に分かれながら作っていく 親データ:子データ = 1 対 複数 1つのデータまでのルートが必ず1つなため、ある特定のデータを検索する場合に高速 ネットワーク型 ツリー構造 親データ:子データ = 複数 対 複数 な…

【SQL】LIKE検索は%を3つ以上含めてパターン検索できる

SQL

リクストされたパスを保存しているログから対象の商品IDを含むレコードを取得したいとする。 例:ログテーブル id path 1 /item_ids=5,10,24&created_at=2023-04-01 2 /item_ids=22,23,98&created_at=2023-04-12 3 /item_ids=25,36&created_at=2023-04-30 4 …

【PHP】cronで1億件のデータを移行

1億件のIoT計測データのデータ移行を行った話。 cronでやることになった背景 cronでデータ移行することになった背景はこんな感じ。 カラム名は仮です。 年ごとの計測テーブルBに保存されている、ある期間の数種類の製品の計測データを、四半期ごとの計測テー…

【Laravel】リポジトリパターンでデータ周りの要求変更に負けない設計パターンを取り入れる

こちらの本で勉強中なので、学習記録として。 PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応作者:竹澤 有貴,栗生 和明,新原 雅司,大村 創太郎ソシムAmazon リポジトリパターンとは リポジトリパターンとは、ビジネスロジックからデ…

【Laravel】レイヤードアーキテクチャで仕様変更に強くする

この本でLaravel勉強中なので、自分用にアウトプットしておく。 PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応作者:竹澤 有貴,栗生 和明,新原 雅司,大村 創太郎ソシムAmazon レイヤードアーキテクチャ ビジネスロジックを表現するサ…

【PHP】ある特定のAPIへリクエストすると勝手にリダイレクトされる

php

結論 リダイレクト時のステータスコードは 301 ではなく 302 を使う! ※もしくは明示的に指定しなければデフォルトで302になる 前提 一般ユーザーAでログインしているときに /user へリクエストすると、制限された情報を返すAPIがある。 一方、Adminユーザー…

【React】基礎のポイント振り返り

Reactの勉強記録。 こちらのトラハックさんのReact入門基礎編の振り返り www.youtube.com コンポーネント 見た目と機能を持つUI部品 大きく2つに分かれる クラスコンポーネント(あまり使われなくなってきている) 関数コンポーネント コンポーネントのいい…

【React】create-react-appするまでの環境構築手順

Reactの学習記録 こちらを使って勉強中。まずは環境構築手順の記録 youtu.be はじめに macで作業 create-react-app を使ってお手軽に環境構築していく このコマンドを使うためには、 node と npm が必要。まずそれらをインストールする。 チュートリアルにも…

【PHP】BCMath関数を使わないで正確に小数点同士を計算する

php

結論 X倍して整数にしてから、結果をXで割る。 事象 PHPで小数点以下を含む値の引き算だと、二進数表現の精度が落ちる影響で、期待した値にならないことがある。