mysql

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…

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

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 を格納するテーブ…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

OSC2020-Osakaに行ってきました

オープンソースカンファレンス2020大阪(OSC2020-Osaka)に行ってきました。・・・と書くと、普段は MySQLユーザ会としてブースを出したり、セミナーをやったりしてきました!という意味だったのですが、今回は申込期間中に参加可否が決められずに、出展をし…

MySQL8.0.19で加わった VALUES を試してみる

MySQL 8.0.19。MySQL 8.0 の「メンテナンスリリース」です。 8.0.19より前のMySQLには、「標準SQLのひとつであるVALUES文が実装されていない」という重大な不具合が含まれていたため、バグ修正として本リリースに含まれたようです(真に受ける人がいると困る…

MySQLのSRID()でSRID変換する際にaxis-orderで悩んだ話

訳あって、MySQLで「GEOMETRY型のカラムに、いったん SRID=0で登録したあと、一気に正しいSRIDに変換する」ということをやろうとしたところ、思惑通りにいかず随分悩んだので、整理しておきます。 やろうとしたこととエラー発生 ここではシンプルな例に置き…

MySQLのDROP DATABASEでWARNINGが表示されない事象

DROP DATABASE IF EXISTS ... で存在しないデータベースをドロップしようとしたときに、WARNING が表示されない事象があったので紹介します。 IF EXISTS (テーブルの場合) MySQL のDROP文には "IF EXISTS" というオプションがあり、たとえばテーブルの場合は…

解決:高緯度ほど緯度1度が広くなる謎(追記あり)

数日前の日記の中で、「緯度1度あたりの長さは、緯度の高低に依らず一定と予想して、MySQLで計算してみたところ、差が出てびっくり」という実験結果を紹介しました。 http://sakaik.hateblo.jp/entry/20191202/mysql_gis_metre_per_degreeこれは、地球が(そ…

MySQL Technology cafe #6 でMySQLのGISの話をしてきました

そんなわけで、12月5日に開催された Oracle Technology Cafe #6 にて、発表の機会をいただき、あんなことやこんなことを語ってきました。 この2年間、色々なところでMySQLのGISについてお話をしてきて、そろそろ「測地系というのが色々あるらしい」「緯度経…

経度一度はどれくらいの長さ?MySQLをつかって調べてみよう

この日記は、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2019 の2日目の記事です。 ( https://qiita.com/advent-calendar/2019/rdbms_gis ) 経度一度ってどれくらい? 赤道付近の一周の長さが だいたい 40,000km だというのはみんな知っていますよね…

MyNA(日本MySQLユーザ会) 望年LT大会2019@赤坂 開催しました

今年も、赤坂のワインバーnomunoを貸切利用させていただいての、日本MySQLユーザ会(MyNA)望年LT大会 というイベントを開催しました。 一応、いわゆる忘年会的な位置づけではあるのですが、前後の各種イベントとの兼ね合いを考え、今年はちょっと早めのこの時…