めもちょー

メモ帳代わりに使っています。

DB

MySQLの全文検索インデックス構築にMeCabパーサーを利用する

全文検索について 準備 コンテナ起動 初期状態確認 データの用意 MeCabパーサーを使う 最小長の設定を変えてみる 参考 全文検索について 全文検索についてはコチラの記事を参照してください。 この記事ではデフォルトの全文検索インデックスの作成および、N-…

MySQLで全文検索を使ってみる

はじめに grep型 index型 基本事項 転置インデックス stopword トークンサイズ 実験 準備 テーブル作成・データ挿入 インデックスの確認 全文検索を実行してみる N-gramパーサーの使用 MeCabパーサーの使用 参考 はじめに 「全文検索」とは複数の文書から特…

『SQL実践入門』よりDBMSアーキテクチャのメモ

DBMS クエリ評価 一時メモリ データキャッシュ ログバッファ ワーキングメモリ DBMS DBMSの役割は下記図のようである。 クエリ評価 我々は、データを探すときに「何を、どのように」探すかを指定する必要がある。 何を:xxxの条件に合うデータを どのように…

MySQLの暗黙的COMMIT

DDLとは 暗黙的コミットとは DDLの暗黙的コミットの例 参考 DDLとは DDL(Data Definition Language)とは日本語では「データ定義言語」と言い、一言で言えばCREATE, DROP, ALTER文のことです。 暗黙的コミットとは DDLではトランザクションを張れません。 D…

MySQLでJSONを要素とする配列を平坦化し集計する問題

目次 事例 環境の用意 MySQLのコンテナを立ち上げ MySQLクライアントから接続 データの準備 データベース作成 テーブルの設計 データの挿入 データの確認 JSONに対する基本操作 JSONのあるキーの値を取得 配列を平坦化 商品のカテゴリごとにグループ化 事例 …

達人に学ぶSQL徹底指南書 SELECTクエリ図解まとめ

SELECT文を多く使う仕事に再び就いたので復習がてらに代表的なSELECT文をまとめてみました。 『達人に学ぶSQL徹底指南書』から良さそうな例を抽出して書きます。 CASE文 例1 例2 例3 テーブル同士のマッチング 例4 CASE式の中で集約を使う Window関数 例1 自…

IIJの新人研修資料やってみた

Dockerを触ってみよう nginxで静的コンテンツを表示する。 Jenkinsを触ってみよう 秘密情報の利用 開発環境をDocker Composeで構築 Database Overview SQL ACID特性 MongoDBを使ってみよう MongoDB(ドキュメント指向DB)が使われる場所 primary-secondary-a…

第1回SQLコンテスト

練習 参加記 練習 用意されたテーブルから要求されたビューになるようなSQLを書くコンテストがありました。 第4問は縦に並んだレコードを横にする問題で、`GROUP BY`と`SUM(CASE WHEN 条件1 then x ELSE 0 END)`を使えば解けました。自分の回答 topsic-conte…

楽観的ロックと悲観的ロックをタイムシーケンス図で理解する

前提 タイムシーケンス図的理解 悲観的ロック 楽観的ロック 前提 複数のクライアントが同じファイル(レコード)を編集する際に競合を防ぐ方法として排他制御がある。 排他制御の方法として悲観的ロックと楽観的ロックがある。まずは、一般的な話 説明 前提 …

MySQL 小技メモ

ローカルのMySQLのdatabaseをdumpする DockeerのMySQLサーバーを建てる SELECT した結果を別テーブルに流し込む SELECTの結果をCSVに出力 テーブルの構造を見る 結果をlessで見る サーバーや接続情報を見る sqlalchemy load_only()関数 ローカルのMySQLのdat…

データ掲載サイトからのスクレイピングの個人的プラクティス

JavaScriptによるレンダリング避け スタッツサイトは, クライアントのレンダリングによって表が表示されているパターンが多いです. そのような場合は, seleniumなどでバックグラウンドでブラウザで操作しHTMLを取得するようにします. def get_soup_by_url(ur…

トランザクションと同時実行制御

トランザクションとACID特性 ACID特性とはトランザクションが満たすべき特徴。 原始性(Atomicity) 一貫性(Consistency) 独立性(Isolation) 耐久性(Durability) 原始性(Atomicity) 一連のものとして定義された処理がすべて完了するか、一つも実行さ…

NBA statsから現状の動向を分析してみる

NBA statsのテーブルから分析ネタをSQLで書いたのでメモ 最も得点をした選手 01/12 00:00 JSTでのスタッツ mysql> SELECT P.player_name, floor(SPP.PTS * SPP.G), season FROM season_per_player AS SPP, player AS P WHERE P.player_id = SPP.player_id AN…