- このエントリーは ConoHa Advent Calendar 2018 の4日目の記事です。
- 同時に MySQL Casual Advent Calendar 2018 の4日目の記事でもあります。
- こちらの昨日は @hmatsu47 さんの MySQL レプリケーションのサポートポリシーがこっそり (?) …
本エントリはMySQL Casual Advent Calendar
2018の二日目です。今年は参加者少なく継続募集中です。
MySQLでは8.0からウインドウ関数に対応しました。これにより商用RDBMS御三家+PostgreSQLが対応していた
多くの分析関数・ウインドウ関数が利用できるようになりました。
分析関数については、山岸さんが以下の時系列の流れで詳細に解説してくださってます。
1.分析関数の衝撃(1-6) 商用RDBMSでの説明。主にOracle 10.2を利用。
2.MySQLで分析関数を模倣(1-5) 分析関数未実装のRDBMSでの説明。主にMySQL
5.1を利用。
3. …
この日記は RDBMS GIS アドベントカレンダー2018の1日目です。
この一年、 GIS 機能についてさまざまな経験をしたり学びを得たりしてきました。
この日記では一年の振り返りと、なぜ私がここまで GIS
機能に惹かれたのかについて紹介していきたいと思います。
直接の技術的な話はありませんが、データベースで扱うデータに対して、どのように興味関心を持って接しているか、という視点でお読みいただければ。
1 GIS機能とは。 …
[さらに読む]この記事は MySQL Casual Advent Calendar 2018 の1日目のエントリーです。 TL;DR
- 日々の覚書: AnemometerというMySQLスローログ専用の可視化ツールの弱点と、その克服スクリプト のその後
- まだまだメンテナンスは続いているよ!
- この1年、 yokogawa-k さんにたくさん助けていただきました。ありがとうございます
スローログを食わせてグラフ化する box/Anemometer …
[さらに読む]
Oracle MySQL Innovation Day 2018 秋
に参加してきました。平日の午後から、夕食休憩を挟んで夜の早めの時間くらいまで、という変則的開催。
参加してみるとなるほど、明るい時間には比較的まじめにしっかりとした話を聞いて、夜枠はどちらかというとコミュニティに寄せた感じなのだな、と納得。当たり前のように両者が融け合う、名構成だったと思います。企画者GJ!
ほんとね、もっと英語聞けるようになりたいって思いますよ、こういう会に出ると。
…
TL;DR
- 日々の覚書: MySQL 8.0のcaching_sha2_password + 非SSL接続が転ける は目を通してもらっている前提
- SSL接続同士、非SSL接続同士では
mysql_native_passwordとcaching_sha2_passwordの接続コストは数百usくらいしか違わない
- まずは
mysql_native_password,caching_sha2_password,sha256_passwordそれぞれを指定したアカウントを作ります。
CREATE USER yoku0825_native_password IDENTIFIED WITH mysql_native_password BY 'a';
CREATE USER yoku0825_caching_sha2 IDENTIFIED WITH caching_sha2_password BY 'a';
CREATE USER yoku0825_sha256 IDENTIFIED WITH sha256_password BY 'a';
- …
8.0からGRANT ALLしたユーザをSHOW GRANTS FORすると、ALL PRIVILEGESではなく、 実際に付与されている個別の権限が列挙されるようになってた。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'super'@'%';
Query OK, 0 rows affected (0.07 sec)
mysql> SHOW GRANTS FOR 'super'@'%' \G
*************************** 1. row ***************************
Grants for super@%: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN,
PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES,
LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW,
CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE,
DROP ROLE ON *.* TO `super`@`%`
*************************** 2. row ***************************
Grants for super@%: GRANT …[さらに読む]
8.0からGRANT ALLしたユーザをSHOW GRANTS FORすると、ALL PRIVILEGESではなく、 実際に付与されている個別の権限が列挙されるようになってた。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'super'@'%';
Query OK, 0 rows affected (0.07 sec)
mysql> SHOW GRANTS FOR 'super'@'%' \G
*************************** 1. row ***************************
Grants for super@%: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN,
PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES,
LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW,
CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE,
DROP ROLE ON *.* TO `super`@`%`
*************************** 2. row ***************************
Grants for super@%: GRANT …[さらに読む]
mysqldが起動できないバグなのか、「 avoid_temporal_upgrade
なんてことすると将来的にサポート対象外だよ」がドキュメントに記載されてないのかどっちだか迷っている。 MySQL
Bugs: #93101: Failed to Populate DD tables when table has
OLD-Style DATETIME column (need Doc) MySQL
5.6からDATETIME型のデータ構造が新しくなった。 日々の覚書: あなたのMySQL 5.6トレンド力をチェックする15の質問 MySQL
5.5とそれ以前で CREATE TABLE したテーブルは8バイトの旧DATETIME型、MySQL
5.6とそれ以降で CREATE TABLE …
MySQL 5.7の時点で既に宣言はされていた。 GROUP BY implicitly sorts by default (that is, in the absence of ASC or DESC designators), but relying on implicit GROUP BY sorting in MySQL 5.7 is deprecated. MySQL :: MySQL 5.7 Reference Manual :: 1.4 What Is New in MySQL 5.7 どういうことが起こるかというと、こう。
$ perl -ML -E 'for (my $n= 1; $n <= 10; $n++) { for (my $m= 1; $m <= 100; $m++) { printf("%d\t%d\n", $n, $m) } }' | sort -R > /tmp/seq
mysql80 165> CREATE TABLE t1 (n int, m int);
Query OK, 0 rows affected (0.05 sec)
mysql80 165> LOAD DATA INFILE '/tmp/seq' INTO TABLE t1;
Query OK, 1000 rows affected (0.09 sec)
Records: 1000 Deleted: 0 Skipped: 0 Warnings: 0
mysql80 165> SELECT * FROM t1 LIMIT 10;
+------+------+
| n | m …[さらに読む]