2020-01-01から1年間の記事一覧
PostgreSQLの実行計画 PostgreSQLの実行計画を見るためにはSQLの冒頭にexplainをつけて実行するだけ。ここではパラレルクエリが実行されないように設定している。 set max_parallel_workers_per_gather to 0; explain select * from public.orders; QUERY PL…
PostgreSQLのパラレルクエリ PostgreSQL9.6からは「パラレルクエリ」が利用できる。パラレルクエリは複数のプロセスを使って分散してクエリを処理するため、大きなテーブルの集計で高速化が期待できる。クエリは、テーブル、インデックスのスキャン、結合、…
はじめに ちょっと手元で自動でデータが生成される環境がほしかったので、イベントスケジューラーでデータをインサートして、ストアドプロシジャーでCSVエクスポートする、という環境を構築した際のメモ。 テーブルの作成 いつものごとくイベントスケジュー…
SQLクライアント psqlはSQLインタプリタ。バックスラッシュコマンドを使うことで、様々な情報を確認できる。 コマンド 内容 \q psqlを終了する \l データベース一の覧表示 \dn スキーマーの一覧表示 \d テーブル、インデックス、シーケンス、ビューの一覧表…
インストールから初期設定 まずは環境構築。ここではMacOSにPostgreSQL(v13.0)をインストールしていく。Dockerとかでもいいんだけども。 ## 過去のゴミを削除 $ brew uninstall postgresql $ rm -rf /usr/local/var/postgres/ $ brew install postgresql $ p…
はじめに PostgreSQLの基本的なコマンドをまとめる。内容はPostgreSQLへの接続から、CopyコマンドでのCSVのインポートまでを対象とする。環境は下記の通り。 > wmic os get caption Caption Microsoft Windows 10 Pro > psql -V psql (PostgreSQL) 13.0 Post…
はじめに ここではMySQLのCharsetとCollationについて例をまじえてまとめる。そもそもMySQLの文字コードは実行環境に依存しないので、LinuxでもWindowsでも同じ結果になる。 Charsetとは MySQLにおけるCharsetとは、「使用できる文字」と「その文字がどのよ…
はじめに ここではAWSを使って、下記の最低限のアーキテクチャを構築する手順をまとめておく。まだわかってない部分多い。 VPC内にパブリックサブネット、プライベートサブネットを用意し、EC2はプライベートサブネットに配置し、RDSをプライベートサブネッ…
CloudSQLの環境設定 ここではGCPのCloudSQLに、イベントスケジューラーを使った擬似テーブルを構築する。そして、MySQLワークベンチやTableauなどから確認する手順をまとめておく。書きを参考にしている。 Connect mysql Workbench to google cloud SQL イン…
はじめに ここではMacOSの環境からVPS内のCentOSに、MySQLとPostgres環境の構築をする手順をまとめておく。 SSH接続 まずはサーバーに下記の通りSSHでログインを行う。 ssh root@***.***.**.*** password: ********** SAKURA Internet [Virtual Private Serv…
Mysqlへの認証方法 セキュリティー上、MySQLにRからアクセスする際に、パスワードをコンソールで実行するのはよくないので、my.cnfに下記の設定を記述する。my.cnfは、/etc/my.cnfにある。[mysqld]、[client]セクションに認証情報を追記。 # mysqldセクショ…
はじめに PostgresSQLの環境構築で行うことをまとめておく。 古いPostgresSQLの削除 昔に入れっぱなしとかで、古いPostgresSQLがあるかもしれないのでとりあえず削除。 $ brew uninstall postgresql $ rm -rf /usr/local/var/postgres/ PostgresSQLのインス…
サンプルコード 毎日60秒間隔で自動インサートされるテーブルのサンプルSQL。 SET GLOBAL event_scheduler = ON; SHOW variables like 'event%'; create database event_auto_insert; use event_auto_insert; CREATE TABLE event_auto_insert.logs ( id INT …