mysql

MySQLに超・雑に大量のPOINTデータ(位置データ)を作成する方法

これは、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2020 の11日目のエントリだったはずのものです。実際には3日ほど遅れてしまいました。 MySQLで、空間情報を扱う動作の確認をしたいときに、ちょっとばかり多めのデータが欲しくなることがあります…

こんなイベントをやりたかった!MyNA望年LT大会2020

本日、MyNA(日本MySQLユーザ会) 望年LT大会2020 をオンラインで開催しました。 顔を突き合わせて、ちょっとばかりのアルコールを摂取しながら、楽しい気分で大好きな技術を語り合う場というのは、やっぱり素晴らしい何かが生まれる場でもあります。一方で、…

今後のMySQLに実装されるspatial(GIS)関数たち

これは、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2020 の2日目のエントリです。 MySQLのリファレンスマニュアルは、開発チーム内部でそれが実装されたタイミングで記述、公開されるルールになっているのか、まだリリースされていないバージョンの…

MySQLにemployeeサンプルデータを入れる

MySQLでとりあえず何かのデータが入っている状態(そこそこレコードがある状態)が欲しいと思っていたところ、やまさきさんに Employee サンプルデータを教えてもらいました。それほど大きい訳ではありませんが(約167MB)、MySQLチームで提供している大き目の…

「日本MySQLユーザ会会2020年11月」を開催しました

4ヶ月ぶりの「日本MySQLユーザ会会」、通称「MyNA会(まいなかい)」を開催しました。 ちなみに「今頃MyNA会やってるのかなー」と思って「MyNA会かな?いま。」と呟くと、これ、回文になっていますので、豆知識として覚えておくと、どこかでネタとして使えるこ…

Re: MyISAMで第2カラムのAUTO_INCREMENTを使ってるテーブルを洗い出すSQL

yoku0825 さんが、面白そうなブログを書いていました。 yoku0825.blogspot.com MySQLの auto_increment 列は キーカラムである必要がありますが、このキーは複合キーでも構わない。ただし 複合キーの場合は、InnoDB ではキー指定のうちの1つめのカラムである…

OSC2020新潟オンライン 参画

オープンソースカンファレンス2020新潟オンライン(OSC2020 Online Niigata)に参加してみました。ospn.connpass.com 新潟でのOSCは、とにかくお酒とごはんのおいしさと、東京(上野)からも電車一本で行ける気軽さ故、毎年の開催を楽しみにしていたOSCのひと…

日本MySQLユーザ会会開催しました(2020年7月版)

日本MySQLユーザ会会(MyNA会)と銘打つものとしては久しぶりに、イベントを開催しました。 いつものMyNA会は、そのタイミングでお話したいネタを持っている方に話していただくということで、多岐に亘る話題となることが多いのですが、今回はイベント全体にテ…

メモ:MySQLの NOW() と SYSDATE()

MySQLで、NOW()もSYSDATE()も、大雑把には「現在時刻を返す関数」なのですが、実はその挙動は異なります。 現在時刻とは何か、つきつめると「時間とは何か」という哲学的なテーマになるのですが、ここではそんな難しい話ではなく、さしあたって 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 環境: さくら…