MySQL徹底入門4版 ここがすごい!...かもしれない

9年ぶりの全面改定「MySQL徹底入門 第4版」がいよいよ発売日になるので、私の主観と、思い入れと、おふざけ心を駆使して、「MySQL徹底入門 第4版 ここがすごい!」・・・かもしれないところを紹介したいと思います。MySQL徹底入門 第4版 MySQL 8.0対応作者:y…

MySQLのレプリケーションで「master」と「slave」が廃止へ!(用語の話)

本件、いろいろ思うところや意見はあるのだけど、それはtwitterで書いたので、ここでは淡々と紹介します。 本日、MySQL High Availability ブログにて、MySQL内での用語の変更について、以下の発表がありました。https://mysqlhighavailability.com/mysql-te…

『MySQL徹底入門第4版』が 本当に 出ます!(MySQL 8.0 対応)

MySQL を知りたい人向けの定番入門書として名高い『MySQL徹底入門』という本があります。2020年6月現在、第3版が出ていて、その発行は2011年、対応バージョンがMySQL 5.5でした。 そして来月 2020年7月。待望の第4版が出版されます。 第4版は、過去3つの版の…

OSC2020-Online Hokkaido 参画

オープンソースカンファレンス(OSC)2020 Online Hokkaido に参加してきました。 event.ospn.jp もともと、「普通」に札幌現地で開催される予定だったイベントですが、「新しい普通」にオンラインで開催へと変更されました。飛行機等を早めに取っていたので、…

MySQL道普請123回のUPDATE前にロッキングリードの話を読んでの感想と実験(追試)の結果

gihyo.jpの連載「MySQL道普請便り」の最新回(第123回)は、ロッキングリード(SELECT ~ FOR UPDATE)のつかいどころのお話が興味深かったです。gihyo.jp 乱暴に要約すると、例えば 5000枚のチケットを捌くUPDATEは、いきなり UPDATE するのではなくて、SELEC…

おまわりさんに挨拶された話

今日の夕方のこと。私は駅で電車を降りてから道路脇の歩道を西向きに歩いていた。片側二車線の、よくある街なかの道路である。縁石で区切られた歩道がある道である。 向こう側からバイクに乗ってやってきた人が、ふと、こちらにむかって会釈をしたような気が…

MySQLリリースノートを読む会を開催してみました(8.0.20)

リリースノートというのは、最新情報の宝庫でもあり、自分が知らなかった機能に関する情報に触れる機会でもあります。MySQLのリリースノートは、各バージョンがリリースされるごとに比較的しっかりと記述されているという印象があるので、これを見ながらそれ…

MySQL25年&MyNA(ユーザ会)20年記念イベントを開催しました

わざわざ普段のMySQL勉強会で「10年前はこんなのでした」「15年前のバージョンでこんなのがあってね」なんて話をする奴は、いない。やっぱりみんな、最新バージョンでどうなったのか、どう使っているのか、という話をしたいし、聞きたい。だからこそ、振り返…

MySQLでCTEを使ってマンデルブロを描く

MySQL に CTEが入ったんですよという話題の中で、PostgreSQLのCTEの定番でこんなものがあるんですよ、とPostgreSQLの(というかSRA OSSの)石井さんに教えていただきました。Mandelbrot set - PostgreSQL wiki もちろんこのままではMySQLでは動かないのです…

MySQL: CHAR(0)の動作が変わっていた

11年ほど前に書いた日記がふと目にとまりました。CHAR(0)という列を定義できるというお話。 sakaik.hateblo.jp 当時のバージョンが明記されていないため、よくわからないのですが、最新の 8.0.20では挙動が変わっているようです。 mysql> CREATE TABLE t1 ( …

こんにちはこんにちはこんにちは!を出すSQL

slack とかを使っていると、新たに部屋に参加した人は挨拶するじゃないですか。「こんにちは!」って。そしたら、既に部屋にいる人は「こんにちはこんにちは!」って返しますよね。その後に入ってきた人は、これを見て「こんにちはこんにちはこんにちは!」…

Oracle 19c 環境をてにいれた!

時々、Oracle Database 環境を触りたくなるタイミングがあって、でも最近は OTN の契約もしていないから(単なる興味のために、そこそこのお金を払うのは)難しいかなぁと思っていたところに、@ora_gonsuke777 さんから さくっと入れられる VM環境を教えてい…

MySQLで未定義のユーザ変数の表示がおかしい(8.0.20)

MySQL では @ で始まるユーザ定義変数を使うことができます。 mysql> SET @v1=123, @s1="ABC"; Query OK, 0 rows affected (0.00 sec) こんなふうに定義すると、SELECTなどで使うことができます。 ここで、上で定義した2つの変数と、未定義の変数をSELECT文…

MySQL: COUNT(*) は 1 ??

Twitterに書き殴ったのですが、流れてしまうので、一応こちらにもまとめておこうかと。これって、何を数えているんでしたっけ?mysql> SELECT COUNT(*);+----------+| COUNT(*) |+----------+| 1 |+----------+— 坂井 恵(SAKAI Kei) (@sakaik) 2020年5月1日 …

とみたさんの記事を見てUDFにトライ

とみたさんの UDF を作ろう記事を、そのまま試してみました。tmtms.hatenablog.comほとんど、書かれているとおりにソースコードをコピーして gcc かけて プラグイン動作させれば良いです。が、少しだけ悩んだ点があるので、そこだけ補足的メモ。 gcc がなか…

メモ:MySQLのサーバサイドでのプリペアド・ステートメント

通常は各プログラム言語側で プレースホルダ含みのSQLを書いたりするけど、 サーバ側での(というかSQLレベルでの)プリペアド・ステートメントの書き方に触れる機会があったので、メモとして記す。 テーブルの用意 とりあえず、id と name を格納するテーブ…

baserCMS 4.3.3を新規サーバに入れるメモ(MySQL8.0使用)

cms

baserCMS を初めてインストールしたのですが、細かいところで色々ハマったので、記録として書いておきます。 basercms.net 環境 さくらインターネットで借りているVPS に、Ubuntu 18.04 amd64 をインストール。 ドメイン名は別途持っているものがあったので…

MySQLで今月の日付一覧を得る(追記あり)

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

MySQLとの戯れ:カラムの別名とグルーピングの動作について

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

Microsoft Universal Mobile Keyboard が充電できなくなった

Microsoft の Universal Mobile Keyboard というのがありましてね。質実剛健でありながらスリムなボディに惚れて、一時期、よく使っていたわけですよ。むかし。 最近、しばらく使っていなかったこいつを引っ張り出して、使って見ようと思ったのですが、電源…

個性的なcsvからデータを取り出した話

コンピュータシステム周辺に関わっているとCSVファイルとのお付き合いは避けて通れないものと言えるでしょう。みなさんはどんなCSVとお付き合いしたことがありますか。 セパレータが明確でない(というか明確なのだけど例外例外の積み重ねが意外とややこしい…

Geospatial Hackers Program に参加して優秀な成績を収めた話

少し前の話になるのですが、Geospatial Hackers Program (GHP)というイベントに参加して来ました。実は、ハッカソンなるものに参加するのは初めてのことで、勝手も分からずに緊張していたのですが、素敵な仲間たちと出会い、心地よく参加させていただくこと…

Ubuntu仮想環境 "Multipass" にトライした話(2)Windows編

レンタルサーバ上のUbuntuの上で multipass が動かなかったので、手元のWindows上で試すことにしました。とりあえずMySQLを動作させるところまでは成功。 環境・前提条件等 OS: Windows 10 Pro 64bit 1909 Memory: 十分にあるので細かいことは気にしない(32G…

Ubuntu仮想環境 "Multipass" にトライした話(1)

Ubuntu の仮想マシンをぽんぽん立ち上げられる "Multipass" というものがあると知り、興味を持ちました。 例えば MySQL のレプリケーションの例を示す時にも、MySQLサーバがどのように動作しているかを理解している人向けには「ポートを変えて立ち上げていま…

MySQL ST_PointFromGeoHash で得られる点はどこの点

ST_GeoHashで得たハッシュ文字列を ST_PointFromGeoHashでPOINTに変換する際に選ばれる点は、どこの点なのかという疑問が、先日発生しました。失礼しました。。確かに、一旦POINTに変換していましたね。(POINTに変換される時の座標の決め方は私も気になりま…

きょうMySQLユーザ会20周年イベントをやっているはずだった

2020年、日本MySQLユーザ会(MyNA)は設立20年を迎えます。15周年の時にはコロプラさんに全面的にご支援いただいて、記念イベントを開催しました。コロプラさん、その節はどうもありがとうございました。このご恩は5年経っても、たぶん10年経っても忘れません!…

MySQLの生成列を使って緯度・経度の列をGEOMETRYに

緯度と経度それぞれが別々のカラムに格納されているデータに対して、生成列を使ってGEOMETRY型のカラムとして扱えるようにする方法を考えてみました。速度面で何かディスアドバンテージがあるのか否かは未知数ですが、こんな方法もあるのだというヒントにな…

第7回 SD輪読会参加

第7回Software Design (2020年2月号、2020年3月号)輪読会 に参加してきました。softwaredesign.connpass.com 今まで Facebookでこっそりメモを残していたけど、折角なのでなるべくオモテにも書くようにしてみようと思います。 今回のキーワード(一部): ・…

(メモ)Ubuntu 18.04 にMySQLを初めてインストール

普段は CentOS を使っているのですが(と言っても、使っていると胸張れる程は使っていない)、今回はじめて Ubuntu に MySQL をインストールしたので、メモ。 もしかしたら不要な操作が含まれているかもしれないけど、OS: Ubuntu 18.04 amd 64 環境: さくら…

MySQL Casual Talks #13 に参加してきました

MySQL Casual Talks #13 に参加してきました。 ただ聞きに行くだけのつもりでしたが、発表枠が開いているようだったので、前日だったかな、急遽発表枠に入れていただきました。ありがとうございます。 connpassで、改めて発表枠に申込しなおそうと、一般参加…