Community journal

The latest from the MySQL community

Ideas, releases, practical guides, and perspectives from the people building with MySQL.

Follow the feed
Showing entries 641 to 650 of 3186 « Previous | Next »
MySQLのユーザー定義関数(UDF)

MySQLのユーザー定義関数(UDF)は大昔に作った記憶があるけど、最近作ってなかったので試しに作ってみたメモ。

関数の中身はなんでも良かったんだけど、フィボナッチ数を求める fib()を作ってみた。

ちゃんと知りたい場合は、マニュアルとかサンプルプログラムを見ましょう。

% gcc -shared -I /usr/local/mysql/include fib.c -o fib.so
% sudo cp fib.so /usr/local/mysql/lib/plugin/
% /usr/local/mysql/bin/mysql -uroot
mysql> create function fib returns integer soname 'fib.so';
Query OK, 0 rows affected (0.02 sec)
mysql> select n, fib(n) from (values row(1),row(2),row(3),row(4),row(5),row(6),row(7),row(8),row(9),row(10)) as n(n);
+----+--------+
| n …
[さらに読む]
MySQLで今月の日付一覧を得る with 再帰CTE

sakaikさんのブログで今月の日付一覧を得るクエリを読んでいて、ここで紹介されているクエリが手元で実行できなかったので、メモ。

sakaik.hateblo.jp

原因は手元の環境が8.0.17でVALUES()関数がなかったことが原因。

よく見るとvalues()関数でテーブルを作って、それを自己結合しつつ出力を作ってソートしている。
再帰CTEでシーケンスが作れるので、それを使っても良いかもなと思い、復習がてら書いてみました。

with recursive rec(V, D) as (
  select 1, cast(date_format(@dt, '%Y-%m-01') as date)
  union all
  select V+1, date_add(D, interval +1 day)
  from rec
  where D < last_day(@dt)
)
select D as `DATE` from rec; …
[さらに読む]
performance_schema.clone_progress が何となくそれっぽい順番に並ぶ理由

TL;DR

  • datadir/#clone/#view_progress という平文のファイルがこのテーブルの本体だから

俺は途中まで作業をしていて聞き逃したんですけど、 Open Source Conference 2020 Online/Spring の かじやまさんのセッション でそんな話題が挙がったらしく。

ps.clone_progress からのSELECTの時ってORDER BY なくても「良い感じの順」で返してくれるのかな。返してくれるような気もするけど「ORDER BY を指定しないときの順は不定ですよ」と入門講座とかで口を酸っぱくしている身には、少し気持ち悪い(笑)。 …

[さらに読む]
Update for last week (2020-04-20~ 2020-04-26)

MySQL Weeklyでは1週間ごとにMySQLのrelease-note, bug, official blog, organizationによるblog, 個人のblogをまとめ紹介しています。
更新は月曜 10時(AM)です。先週一週間のMySQL関連の更新を再確認するのにご活用ください。

また、このブログ記事はGitHub上で管理されていますMySQL-weekly repository。Issue, pull-request歓迎です。(完全に同期できているわけではありません)

Release note

( …

[さらに読む]
baserCMS 4.3.3を新規サーバに入れるメモ(MySQL8.0使用)

baserCMS を初めてインストールしたのですが、細かいところで色々ハマったので、記録として書いておきます。
basercms.net

環境

 さくらインターネットで借りているVPS に、Ubuntu 18.04 amd64 をインストール。
 ドメイン名は別途持っているものがあったので、予めこのサーバにDNS設定で向けておく(ここでは svr1. …

[さらに読む]
MySQLで今月の日付一覧を得る(追記あり)

ふと、今月の日付一覧が欲しくなって、MySQLでやってみた。以前は、カマセデータ用に一時的にテーブルを作る必要があったけど、今は VALUES文のおかげで、随分ラクになった、、、、かな。

 今月ついたちの日付を得るのは、色々なやり方があるけれども、これがシンプル。

mysql> SELECT DATE_FORMAT(NOW(), '%Y/%m/01');
+--------------------------------+
| DATE_FORMAT(NOW(), '%Y/%m/01') |
+--------------------------------+
| 2020/04/01                     |
+--------------------------------+
1 row in set (0.00 sec)

これに適当な日数を加えれば、任意の日付を得られるので、例えば4日加えるのは、こう。

mysql> SELECT DATE_ADD(
    -> …
[さらに読む]
良く使う pt-query-digest のコマンド メモ

ただのメモです。

pt-query-digest

percona tookit に含まれるツールの1つ。 スロークエリログやtcpdump からクエリを抽出して、クエリを集計するツール。 負荷をかけているクエリを洗い出すのに便利なヤツ。

https://www.percona.com/doc/percona-toolkit/LATEST/pt-query-digest.html

いつものコマンド

  • InnoDB の IO の多い順でソート

InnoDB_IO_r_bytes は Vanilla MySQLでは出力されない。Percona でしか動かない。

$ pt-query-digest  --group-by fingerprint --order-by …
[さらに読む]
MySQL の feature request を眺める

feature request

MySQL のバグは bugs.mysql.com で管理されています。 このサイトにはバグだけでなく、機能改善(feature request) の要望も投稿できます。

bugs.mysql.com

眺めてみる

普段はバグ(不具合)に注目してみているのですが、今日は、FRをみてみようと思います。

Advanced Search から StatusがVerified、Severity が S4(Feature request ) を条件として検索してみます。 ID順でソートし、最近投稿されたものを見てみます。

bugs.mysql.com

これ確かに欲しい!と思ったら

Affects me …

[さらに読む]
MySQLとの戯れ:カラムの別名とグルーピングの動作について

 この日記は、少し時間が取れるようになった私が自由気ままにMySQLと戯れた結果を、つらつらと書き殴ったものです。明確な目的もなく、ただただMySQLと会話をして(そう、MySQLには「対話モード」があるのですよ)、楽しかったぁ、という日記です:-)

 今回は、MySQLのカラムの別名について遊んでみました。特に結論はなく、こういう動きをするのかぁという読み物として見ていただければと思います。原理や内部構造の追加解説は歓迎します。

準備と基本事項の確認

…

[さらに読む]
Update for last week (2020-04-06~ 2020-04-12)

MySQL Weeklyでは1週間ごとにMySQLのrelease-note, bug, official blog, organizationによるblog, 個人のblogをまとめ紹介しています。 更新は月曜 10時(AM)です。先週一週間のMySQL関連の更新を再確認するのにご活用ください。

また、このブログ記事はGitHub上で管理されていますMySQL-weekly repository。Issue, pull-request歓迎です。(完全に同期できているわけではありません)

Release note

( …

[さらに読む]