MySQLのこと。

MySQLのことについてまとめているブログ。他人に見せる用でもなく、自分の勉強備忘録。検索インデックスも外してるので、辿りついた方・・・ようこそ。そんな大した情報ないですよ?!たまにアルゴリズムの練習も

リストのローテーションにおけるブロックスワップアルゴリズム

問題 今回もリストのローテーションを勉強する。問題はgeeksforgeeksのBlock swap algorithm for array rotationにあるローテーション問題。アルゴリズムの中身は下記のような内容を実装できれば良い。 1. A = arr [0..d-1]およびB = arr [d..n-1]を初期化し…

リストのローテーションにおける逆転アルゴリズム

問題 今回はReversal algorithm for array rotationにあるリストの並びをローテーションないしスワップさせて、リストのブロック要素を反転する方法を勉強する。具体的には下記のようなリストがあったときに、dで指定した数値分リストを分割し、その分割した…

リストの並びをローテーションする

問題 今回はProgram for array rotationにあるリストの並びをローテーションする方法を勉強する。具体的には下記のようなリストがあったときに、dで指定した数値分、リストを左にローテーションすることが目的。 d=2 pre: [1, 2, 3, 4, 5, 6, 7] ↓ post:[3, …

turtleであそぶ

turtle turtleであそびます。 turtleで四角形 turtleで四角形を書くには、直線を書いて、曲がってを4回繰り返せば四角形になる。 import turtle turtle.shape('turtle') def square(): for i in range(4): turtle.forward(100) turtle.right(90) square() tu…

インデックスと仲良くなりたい。

range for文やwhile文を使って、何らかの問題を解く際に、インデックスをうまく動かす必要がある。そうすることで配列の値をうまく動かせるので、インデックスとは仲良くないといけない。とりあえず簡単にrangeの使い方をまとめておく。以降、ここではlen_ar…

【PostgreSQL】実行計画もろもろ

PostgreSQLの実行計画 PostgreSQLの実行計画を見るためにはSQLの冒頭にexplainをつけて実行するだけ。ここではパラレルクエリが実行されないように設定している。 set max_parallel_workers_per_gather to 0; explain select * from public.orders; QUERY PL…

【PostgreSQL】パラレルクエリ

PostgreSQLのパラレルクエリ PostgreSQL9.6からは「パラレルクエリ」が利用できる。パラレルクエリは複数のプロセスを使って分散してクエリを処理するため、大きなテーブルの集計で高速化が期待できる。クエリは、テーブル、インデックスのスキャン、結合、…

イベントスケジューラーで定期CSVエクスポートのバッチジョブを実行する

はじめに ちょっと手元で自動でデータが生成される環境がほしかったので、イベントスケジューラーでデータをインサートして、ストアドプロシジャーでCSVエクスポートする、という環境を構築した際のメモ。 テーブルの作成 いつものごとくイベントスケジュー…

【PostgreSQL】PostgresSQLのSQLクライアント

SQLクライアント psqlはSQLインタプリタ。バックスラッシュコマンドを使うことで、様々な情報を確認できる。 コマンド 内容 \q psqlを終了する \l データベース一の覧表示 \dn スキーマーの一覧表示 \d テーブル、インデックス、シーケンス、ビューの一覧表…

【PostgreSQL】PostgresSQLの初期設定(Mac)

インストールから初期設定 まずは環境構築。ここではMacOSにPostgreSQL(v13.0)をインストールしていく。Dockerとかでもいいんだけども。 ## 過去のゴミを削除 $ brew uninstall postgresql $ rm -rf /usr/local/var/postgres/ $ brew install postgresql $ p…

【削除予定】PostgreSQLの基礎(Windows)

はじめに PostgreSQLの基本的なコマンドをまとめる。内容はPostgreSQLへの接続から、CopyコマンドでのCSVのインポートまでを対象とする。環境は下記の通り。 > wmic os get caption Caption Microsoft Windows 10 Pro > psql -V psql (PostgreSQL) 13.0 Post…

MySQL8.0のCharsetとCollationについて

はじめに ここではMySQLのCharsetとCollationについて例をまじえてまとめる。そもそもMySQLの文字コードは実行環境に依存しないので、LinuxでもWindowsでも同じ結果になる。 Charsetとは MySQLにおけるCharsetとは、「使用できる文字」と「その文字がどのよ…

AWSで最低限のアーキテクチャを構築する【工事中】

はじめに ここではAWSを使って、下記の最低限のアーキテクチャを構築する手順をまとめておく。まだわかってない部分多い。 VPC内にパブリックサブネット、プライベートサブネットを用意し、EC2はプライベートサブネットに配置し、RDSをプライベートサブネッ…

CloudSQLでデータ連携用ダミーデータベースを作る

CloudSQLの環境設定 ここではGCPのCloudSQLに、イベントスケジューラーを使った擬似テーブルを構築する。そして、MySQLワークベンチやTableauなどから確認する手順をまとめておく。書きを参考にしている。 Connect mysql Workbench to google cloud SQL イン…

CentOSにMySQLとPostgres環境の構築

はじめに ここではMacOSの環境からVPS内のCentOSに、MySQLとPostgres環境の構築をする手順をまとめておく。 SSH接続 まずはサーバーに下記の通りSSHでログインを行う。 ssh root@***.***.**.*** password: ********** SAKURA Internet [Virtual Private Serv…

RからMySQLをつなぐ際のアクセス方法

Mysqlへの認証方法 セキュリティー上、MySQLにRからアクセスする際に、パスワードをコンソールで実行するのはよくないので、my.cnfに下記の設定を記述する。my.cnfは、/etc/my.cnfにある。[mysqld]、[client]セクションに認証情報を追記。 # mysqldセクショ…

PostgresSQLのインストール

はじめに PostgresSQLの環境構築で行うことをまとめておく。 古いPostgresSQLの削除 昔に入れっぱなしとかで、古いPostgresSQLがあるかもしれないのでとりあえず削除。 $ brew uninstall postgresql $ rm -rf /usr/local/var/postgres/ PostgresSQLのインス…

イベントスケジューラーのSQL

サンプルコード 毎日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 …

データベースのおさらい

データベースのおさらい ここでは、SQLではなく、「データベース」の概念をおさらいする。理由は「SQLを書けても、リレーショナルモデルは知らないではいけない…」と思うきっかけがあったので、おさらいすることにした。下記を参考にしている。 達人に学ぶDB…

TableauとローカルのMySQLを接続する。

はじめに ここではローカルにあるMySQL8.0とtableau Desktopを接続する方法をまとめておく。 iODBC Driver Manager iODBC.orgからOSにあった「iODBC Driver Manager and Software Development Kit」をダウンロードしてインストールする。 Connector/ODBC 8.0…

WindowsでMySQL環境構築~データベース構築からダミーデータベース作成まで~

はじめに ここではMySQLの環境構築の内容をまとめておく。環境はWindows、MySQLのバージョンは8.0を想定している。 MySQLのインストールをダウンロード "MySQL Community Downloads"からインストーラーをダウンロードする。 左下の「No thank, just start my…

MySQLのexplainに関するまとめ

はじめに MySQLのexplainについてまとめる。 explain explainの詳細な説明は「漢のコンピュータ道」のMySQLのEXPLAINを徹底解説!! やヤフー社内でやってるMySQLチューニングセミナー大公開 を参照ください。私のメモは誤っている可能性がありますので…。 exp…

MySQLの権限に関するまとめ

はじめに MySQLの権限についてまとめる。 MySQLの権限 MySQLの主な権限一覧は下記の通りである。分析者が必要とするであろう権限については太字で表記。また、権限の詳細は13.7.1.4 GRANT 構文を参照。 権限 内容 alter alter文の実行を許可。 create データ…

MySQLのキー(インデックス)に関するまとめ

はじめに MySQLのキー(インデックス)についてまとめる。 インデックス キーとか、インデックスとか呼ばれる。インデックスはデータベースで検索速度を高めるためには必要不可欠なもの。書籍の索引のようなものとして説明されることが多い。まずは、サンプル…

MySQLのinsert、update、deleteに関するまとめ

はじめに MySQLのinsert、update、delete関連についてまとめる。 insert 通常のinsert方法は下記の通り。insert into <table name> (col1, col2,...,coln) values(*,*,...,*)という文法。 mysql> CREATE TABLE tbl01 ( id INT, val INT, name CHAR(30) character set utf</table>…

MySQLのcreate **, alter table **に関するまとめ

はじめに ここではMySQLのテーブルに関するコマンドをまとめておく。 create database 基本的には、MySQLの中に「データベース」という単位があって、そこでデータを区分けし、さらに各データベースの中でテーブルという形でデータを保持することになる。ま…

MySQLのインポート、エクスポートに関するまとめ

はじめに MySQLにcsvをインポートする際に、MySQL WorkBenchのインポートウィザードやInsertやBulk InsertではなくLOAD DATA INFILE構文でcsvをインポートする方法について。おまけ程度にエクスポートする方法についてまとめる。 サンプルデータ サンプルデ…

RユーザーのためのMySQL環境構築~データベース構築からRとの接続まで~

はじめに ここではMySQLの環境構築の内容をまとめておく。私のような大学院の研究でデータ分析を始め、就職してからはSQLも触らないといけなくなったものの、データベースとかさっぱりで、SQLの練習をしようにもデータベースの環境構築にてこづっている分析…