MySQL

LeetCode 197 Rising Temperature

概要 LeetCodeのsql問題、rising-temperatureという問題を解きました URLは以下です(ログインしないと見られません) https://leetcode.com/problems/rising-temperature/description/ 問題文 Table: Weather +---------------+---------+ | Column Name | …

MySQL 8.0.18で導入されたEXPLAIN ANALYZEについて

概要 MySQL 8.0.18でEXPLAIN ANALYZEという句が導入されたのを知ったので、どんなものかメモします。 公式の説明はexplainのEXPLAIN ANALYZE による情報の取得という段落に記載されています。 以下の情報を取得できるようです。 推定実行コスト 戻された行の…

複合インデックスの効果と注意点

概要 インデックスには複合インデックスというものがあります。 これは単一のカラムではなく、複数のカラムを組み合わせてインデックスを貼るもので、組み合わせで検索されるカラムに貼ると効率的です。 複合インデックスを使うにあたって、いくつか注意点が…

GROUP_CONCATでグループ化された行のカラムの値を連結して出力する

概要 グループ化された行のカラムの内容も表示したい時などに使うGROUP_CONCAT()について記載します 実行環境:MySQL5.6 SQL CREATE TABLE classroom ( classroom_id INT PRIMARY KEY, classroom_name VARCHAR(50) NOT NULL, capacity INT NOT NULL ); CREAT…

MySQLのSelect句で日付の差分を取得する方法と分単位の差分について

使用例 例えば最初にレコードが作られた日付と、何らかの処理が完了した日付の差分を取得するときなどに使うかと思います select created, finished, TIMESTAMPDIFF(MINUTE, created, finished) AS '分差分' from table order by id desc MySQLのDIFF関数は…

主キーには自動でインデックスが付与される

Primary keyを作成時、インデックスは自動で付与される 主キーを作成時、大抵のDBは自動でインデックスが主キーに付与される そのため、主キーにインデックスがあることを意識してインデックスを付与することや、複合主キー主キーを作成時には、複合インデッ…