サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
sakaik.hateblo.jp
2024年2月10日に広島で開催された YAPC::Hiroshima 2024に参加してきました。 YAPCは東京で開催されていた最後の回を含めて数回参加したことがありますが、数ある言語系イベントの中でも最も技術に厳しくギークな集まりで、適当な知識でうっかり口を開くとすぐに厳しい言葉が飛んでくる、そんなやや怖い印象を持っていました。今回、それほどそうとは感じなかったのは、時代なのか、私が成長したのか。 yapcjapan.org 到着まで 小倉のゼンリンミュージアムで1月から5月までやっている企画展訪問のチャンスを狙っていたので、今回この機会に立ち寄ることにしました。広島だったら小倉近いしね。(なお当方千葉県在住) そんなわけで、YAPC::Hiroshimaに向かうのに、いったん会場の上空を通過。 ミュージアムについては、また別エントリにて書く予定です。 小倉の平和通りに行ってボケてみ
MySQL 8.0.31 がリリースされました。「リリースノートでわいわい言う勉強会」は1か月後くらいにやりたいと考えているので、それまでツイッターやブログでぜひ MySQL 8.0.31 を試して、ブログやツイートなどで気になる変更点を教えてください。 さて、さっそくですが私が気になったのは「新構文」。 "INTERSECT" と "EXCEPT" に対応したということで、軽く試してみました。 テーブルとデータの準備 flg1とflg2の2つのカラムを含むテーブルを作成し、データを投入します。 mysql> SELECT @@VERSION; +-----------+ | @@VERSION | +-----------+ | 8.0.31 | +-----------+ 1 row in set (0.00 sec) mysql> CREATE TABLE t26 ( -> id I
この日記は、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2020 の16日目の記事です。 何をしたいか 先日の日記で雑に作成した大量のPOINTデータを使って、ある点から一定距離内にある点を検索します。普通にやると結構時間がかかりますが、空間インデックスがきちんと使用されて高速に検索できるところがポイントです。POINTの話だけに。 先日のデータ 先日の日記で書いたスクリプトを使って、テーブル sp1 に、約29万件のデータを作成しました。 mysql> select COUNT(*) FROM sp1; +----------+ | COUNT(*) | +----------+ | 286572 | +----------+ テーブル構造は、シンプルにこんな感じ。数値id と POINT型(SRID=4326)の sp の2カラムだけです
最近は、会社などの組織において仕事の指示をする場合に、単に上司が命令をするだけでは組織は動かないと言われています。部下に仕事をしてもらうには--そう、まさにこの「してもらう」の気持ちこそが本質なのですが--「命令」ではなく「依頼」の形を取ることで、お互いに気持ちよく仕事をすることができ、より良いチームとなるのです。 この世の中の流れは近年、ソフトウェアの世界にも強く適用されるようになってきました。ソフトウェアに於いても、常に、より中立的な立場での対応が求められてきています。 MySQレも例外ではなく、最近の修正ではレプリケーションの master-slave を source-replica と呼ぶように変更したり、blacklist を blocklist に変更したりなどの話題を目にした方も多いと思います。 これら一連のポリティカリーにコレクトな対応に今回新たに加わったのが、冒頭で紹介
MySQLで、NOW()もSYSDATE()も、大雑把には「現在時刻を返す関数」なのですが、実はその挙動は異なります。 現在時刻とは何か、つきつめると「時間とは何か」という哲学的なテーマになるのですが、ここではそんな難しい話ではなく、さしあたって MySQL では、 NOW() は、そのクエリ処理が開始した日時 SYSDATE()は、その関数の処理が行われているまさにその日時 という話をしたいだけです。 mysql> SELECT NOW(), SYSDATE(), SLEEP(3), NOW(), SYSDATE(); +---------------------+---------------------+----------+---------------------+---------------------+ | NOW() | SYSDATE() | SLEEP(3) | NO
本件、いろいろ思うところや意見はあるのだけど、それはtwitterで書いたので、ここでは淡々と紹介します。 本日、MySQL High Availability ブログにて、MySQL内での用語の変更について、以下の発表がありました。 https://mysqlhighavailability.com/mysql-terminology-updates/ ざっと、内容を紹介すると(箇条書きの下に変更内容): レプリケーションで使っている master/slave という言葉はネガティブな言葉だ。それはクリア(明らか)だ。 既に我々はブログとかプレゼンで、これらの言葉を色々言い換えてきた。 なので、そろそろソースコードとドキュメントの変更にも手を付けようかなと。 旧master を、primary ではなく source にしたのは、いろんなレプリケーション構成がある中で必ずしも「prima
MySQL を知りたい人向けの定番入門書として名高い『MySQL徹底入門』という本があります。2020年6月現在、第3版が出ていて、その発行は2011年、対応バージョンがMySQL 5.5でした。 そして来月 2020年7月。待望の第4版が出版されます。 第4版は、過去3つの版のコンセプトを引き継ぎつつ、全体にわたって1から書き起こした本です。当然 最新の MySQL 8.0 に対応。9年に1度の最高のできあがりであり、MySQL 8.0 を知りたい人には絶対にお勧めの一冊と言ってよいかと思います。 なお、今更ですが一応表明しておくと、このエントリーは、私の主観に基づいたものであり、著者としてのポジション的なトークも含まれています。平たく言うと、ちょっと盛ってます。その真偽は、実際の書籍を手に取ってレジでお金を払って、皆さん自身の目でご判断ください。 Amazonさんに、「2020年7月6
リリースノートというのは、最新情報の宝庫でもあり、自分が知らなかった機能に関する情報に触れる機会でもあります。MySQLのリリースノートは、各バージョンがリリースされるごとに比較的しっかりと記述されているという印象があるので、これを見ながらそれぞれの興味関心を持ち寄ってわいわいとやったら面白いんじゃないかな、と以前より思っていました。 オフラインで、わざわざ特定の場所に足を運んでまで参加するか、というと多少惹きの弱いテーマであることは否めず、なかなか開催できずにいた中で、昨今のオンライン会合のズーム、、、じゃなくてブーム。Twitterで反響伺いをしたところ「これはいける!」との確証を得られたので、まずは1回開催してみました。 mysql.connpass.com 企画運営者として 非常に豪華な方々に参加表明をしていただいて、開催の1週間前からとても楽しみでした。ありがとうございます。各自
Twitterに書き殴ったのですが、流れてしまうので、一応こちらにもまとめておこうかと。 これって、何を数えているんでしたっけ? mysql> SELECT COUNT(*); +----------+ | COUNT(*) | +----------+ | 1 | +----------+— 坂井 恵(SAKAI Kei) (@sakaik) 2020年5月1日 コトの発端はちょっとした打ち間違いだったのですが、MySQL は FROM 書かなくても演算できます。こんな感じ。 mysql> SELECT 3; +---+ | 3 | +---+ | 3 | +---+ mysql> SELECT SQRT(64); +----------+ | SQRT(64) | +----------+ | 8 | +----------+ ここで、SELECT COUNT(*) とすると何が返って
この日記は RDBMS GIS アドベントカレンダー2018の1日目です。 この一年、 GIS 機能についてさまざまな経験をしたり学びを得たりしてきました。 この日記では一年の振り返りと、なぜ私がここまで GIS 機能に惹かれたのかについて紹介していきたいと思います。 直接の技術的な話はありませんが、データベースで扱うデータに対して、どのように興味関心を持って接しているか、という視点でお読みいただければ。 1 GIS機能とは。MySQL の GIS 機能とは。 ここで言う GIS 機能とは、位置の情報を取り扱うための機能のことです。 MySQL ではバージョン8.0になって地球上の位置の情報を取り扱うしくみが大幅に整備されました。 具体的には、それまでのバージョンでは平面上の座標のみを取り扱うことができたものが、バージョン8.0になって初めて、MySQLは地球が丸いことを覚えたのです。緯度
第3回目となる ClubMySQL をサイボウス様のオフィスをお借りして開催しました。今回のテーマは「yoku0825のつくりかた」。ブログで、イベント発表で、Twitterで、様々なMySQL情報を発信してくれている、今やMySQLコミュニティの顔とも言える yoku0825さん(以下 yokuさん)に、「あんた、なんでそんなすごくなったの?」を聞きたくて、お願いをしました。 clubmysql.connpass.com yokuさんはこのたび、日本MySQLユーザ会の運営スタッフ(副代表)への参加をしていただくことになりました。一度は固辞したスタッフ職をなぜ今引き受けたのか、それも今回語ってくれました。意外と現実的なお話(笑)。そういや資料は公開してくれるのかな。公開してほしいなぁ(最後の部分は、どうしても伝えたいメッセージだけを加筆する程度でもいいし)。 ClubMySQLでは、本編
慣例(?)として4月下旬には出るのではないか、と勝手に予測していた MySQL 8.0 が、私の予想よりもほんの少し早くリリースされました*1。ついに待望の GA です。 MySQL 5.7 で、それ以前のバージョンと比べて非常に大きな進化をしたMySQLですが、バージョン番号を大きく飛ばした今回の MySQL 8.0 でも一層の進化をしています。進化の内容は MySQL Server Blog の記事で詳しく説明されているので、私もこれから少しずつ読もうと思います。 mysqlserverteam.com この Server Blog のエントリー、とってもとっても長い力作で、これを読むだけでMySQL8.0の進化の概要はざっと理解できそうなくらいです。が、長いと(更に英語だし)だんだん何を読んでいるのか分からなくなってしまうので、私はこういうときに「地図」を作ります。自分用に、ざっくり
キャッシュバックキャンペーンをやっている製品を購入して応募したところ、メーカーより「おまえの製品は中古品である」として、キャッシュバックをしてもらえないという(私にとっては)珍しい体験をしたので、記録として日記に。 要約 エプソンのEW-M770T というプリンタを、Amazonサイトに出展している業者から購入した(発送はAmazon) このプリンタは、保証書のコピーと領収書を送ると 15,000円がキャッシュバックされるキャンペーン中 キャッシュバック応募したところ、2ヶ月強経過した3月某日、「それは中古品だからキャッシュバックしない」とのお手紙が来た 詳細情報、所感など Amazonにて本製品を注文したのは、2017年12月のこと。Amazon倉庫から発送するという奈良県の業者。「新品未開封品」「キャッシュバックはAmazon領収書で対応可(エプソン確認済)」の明記があったので安心して
ふと、「MySQLってテーブル名にハイフンを使用できたよな」と思い出したことから、「そういえばハイフンとマイナス(引き算)って混同しないのかな」と気になりました。 この疑問自体の答えは簡単で、 「そのまま記述すると問題のあるテーブル名はバッククォート(`)でくくる」 というだけなのですが、実際にOS側に作成されるファイルのファイル名が、以前と違っていたのがおもしろかったので、書いておきます。 mysql> create table `test-one` (a int, b varchar(20)); としてテーブルを作成すると、 -rw-r-----. 1 ec2-user ec2-user 8578 Jan 25 06:31 test@002done.frm -rw-r-----. 1 ec2-user ec2-user 98304 Jan 25 06:31 test@002done.i
昨日の 日本MySQLユーザ会会(MyNA会)で、yoku0825さんがお話の中で紹介してくれていた、create_synonym_db が面白かったので、記録しておく。曰く: sysスキーマの中にある create_synonym_db を使うと、データベースに別名を付けることができます。 この「データベース」というのは、CREATE DATABASE したりする、あの「データベース」ね。useしたりする、あれね。 例として紹介されていたのは、performance_schema という長ったらしい名前に p_s という別名を付けるというもの。 mysql> call sys.create_synonym_db('performance_schema', 'p_s'); +----------------------------------------+ | summary | +---
ひとつ前の日記で、「MySQL 5.7 は、ビルドのために大量にメモリを要求するので、AWS Red Hat の t2.micro、すなわちメモリ 1GBではビルドできない」という趣旨のことを書きました。その時点での対応策として、t2.medium というメモリ4GBの環境を利用することで、ビルドに成功しました。 その後、「t2.micro は、デフォルトではswapファイルの設定が無効になっているよ」と、詳しい方から教えていただき、設定の後に t2.micro でも MySQL 5.7 をビルドできたので、ここに紹介します。 t2.micro でMySQL 5.7をビルドするために必要な設定 以下の手順でswapファイルを作成し、使用可能な状態にします。ここでは 1GBの領域を作成しました。 # dd if=/dev/zero of=/myswapfile bs=1M count=102
ひとつまえの日記の続きです。 最近、MySQL のインストールは rpm(CentOS)、あるいは MySQL Installer(Windows)に頼りっきりで、手動インストールからも、すっかり遠ざかっておりました。そんな折に、簡潔でシンプル*1な yoku0825さんの記事に助けられて、そして年末に「AWS触ってみてよ」と推してくれた方のおかげで、環境と時間と情報とやる気が一気にフルハウス。 さほど大きな苦労もせずに、久々にビルドに成功した*2のに気をよくして、同じマシン(OS)上に複数の MySQLサーバを立ち上げるのをやってみました。 ひとつ前の日記( http://sakaik.hateblo.jp/entry/20170103/build_mysql ) の続きです。ひとつ前の日記では、MySQL 5.6.35 をソースコードからビルドして起動しました。 今回やりたいこと すで
yoku0825 さんが、Software Design 誌 2016年6月号に、最近のMySQLのビルドのしかたを簡潔に書いてくれていたのを見て、ずっとやりたかったのが、半年が経ち、年を越え。こんなに時間が経つなら忘れてしまえばいいのに、と思うのですが、先延ばしにすればするほど忘れられなくなるのが、この性分。ようやく年貢を納めることができた気分なので、メモ書き程度にここに残しておこうと思います。 この年末年始に、AWSにやっと触ってみました。「AWSに触る」という表現が適切なのかどうかすらよくわかっていないレベルなのですが、アカウントを作って、マシンイメージからインスタンスを作ったり、あるいは壊したりする体験をしたところです。ということで、この環境の上で、MySQLをビルドして動かしてみることにしました。 今回使用したのは、Amazon マシンイメージ(AMI)から、Red Hat En
数日前に、とみたまさひろさんのこんなツイートがありました。 なんだこれ? MySQLこわい… mysql> SELECT * FROM x WHERE datetime IS NULL; datetime 0000-00-00 00:00:00— とみたまさひろ (@tmtms) 2015, 12月 17 @tmtms ちなみにその '0000-00-00' は、 IS NOT NULL のときには含まれないんですか?— 坂井 恵(SAKAI Kei) (@sakaik) 2015, 12月 17 MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.3.2 比較関数と演算子 "NOT NULL として宣言された DATE および DATETIME カラムでは、次のようなステートメントを使用することで、特殊な日付 '0000-00-00' を検索できます" その後の t
おそらく一生で最初で最後の「ひとりアドヴェントカレンダー」を完走した記念に、自分の日記のところでもカレンダー形式のリンク集を作って見ました、、、、、が、単純にはてな記法するだけだと崩れまくりです(^^; まぁいいや。 完走記念(というわけではありませんが)1月半ばに福岡で sakaikを囲む会(通称さかいかい)やります。福岡のみなさん、あそびましょ!呑むだけですが。 2015年12月:アドヴェントカレンダー「MySQLマニュアルを読む」 30 1MySQLのリファレンスマニュアルを読もう 2MySQLリファレンスマニュアルのURL 3MySQLマニュアルの「チュートリアル」 4MySQLの数値数学関数いろいろ 5MySQLマニュアルより「制限事項」 6MySQLマニュアルから「型」いろいろ 7MySQLの文字列関数はこんなにある 8MySQLで使うファイルフォーマットも書かれているマニュア
この記事は、2015年「MySQLマニュアルを読む」アドベントカレンダーの19日目です. MySQL 5.7.7 からは、新たに「sys」という名前のスキーマが追加されました。 MySQL :: MySQL 5.7 Reference Manual :: 22 MySQL sys Schema これは大雑把に言うと、MySQLの開発や管理をする上で便利な機能を集めたものです。 もう少し具体的には、便利なストアドプロシージャ(ストアドファンクション)やVIEWなどを集めたものだと考えて良いかと思います。 22.1 Prerequisites for Using the sys Schema 22.2 Using the sys Schema 22.3 sys Schema Progress Reporting 22.4 sys Schema Object Reference 22.4.1 s
オラクル社主催の MySQL User Conference Tokyo 2015 に参加してきました。 MySQL User Conference Tokyo 2015 日本でのMySQLのカンファレンス。MySQL社の時代、サンマイクロシステムズの時代にそれぞれ何度か開催されたことがありましたが、オラクルに買収されてからは初めての開催です。米国での動きを見ていると、オラクル製品のイベントの一部としてMySQLのコーナー(ブロック)があるといった印象が強いので、ここで日本国内で、オラクルデータベースとはまったく別個にMySQLの名を冠した単独イベントが開催されたことを、たいへん嬉しく思っています。 今回は、1日開催、セミナー1トラックのみ、企業等のブースもとくになし、というコンパクトな開催となりました。寂しくないのか?と言われれば、声を大きくして「寂しい!」と答えるでしょうけど、MySQ
この記事は、2015年「MySQLマニュアルを読む」アドベントカレンダーの10日目です. RDBMSを使った開発を行っている最中に、もっともよく書いたり調べたりするのがSQL文でしょう。私自身もそうですが、たいがい、必要になったときにピンポイントで調べて、またすぐ忘れる、という事が多いです。 マニュアルには当然、各SQLの構文がしっかりと書かれていますから、機会あるときに一度、眺めてみると新たな発見があるかもしれません。普段使っているシンプルな構文以外にも、もっともっとたくさんのオプション句があることに、きっとびっくりすることでしょう。 SQLの構文については、13章 SQL Statement Syntax にまとまっています。 http://dev.mysql.com/doc/refman/5.7/en/sql-syntax.html 最低でも、DDL と DML は押さえておくと良さ
この記事は、2015年「MySQLマニュアルを読む」アドベントカレンダーの9日目です. MySQLには、機能や性能を試してみたい人のためのサンプルデータ(サンプルデータベース)が用意されています。northwind データベースと言います。嘘です。それ、SQL Server。 Sakila という名前を聞いたことがある人も多いでしょう。MySQLのマスコットでもあるイルカさんの名前なのですが、同名の sakila データベース、というものが提供されています。この sakila データベース。いつも、どこにあるかよく判らず、一旦mysql.comから退出して google さんのお世話になっていたのですが、たどり着き方を梶山さんに教えてもらったので、紹介します。 MySQL Documentation のトップページから、「More」をクリックします。 http://dev.mysql.co
この記事は、2015年「MySQLマニュアルを読む」アドベントカレンダーの1日目です. MySQLに関しては、膨大な量のドキュメントが公開されています。 一度読み通したいなと思いつつ、最初の方は面白くなかったり(笑)、章立てで見える以上に各章に深さがあって、読んでも読んでもいつ終わるかわからなくてイヤになったりなどして、いつもすぐに読むのをやめてしまいます。 12月になると、連載っぽく書く行事があるようなので、それに乗っかる形で、ドキュメントをつまみ食いしながら1日1ネタを書いて行けたら良いかなと思い、書き始めてみることにしました。 という、これを書いているのは実は12月6日なので、さかのぼっての投稿ということになります。 さて、MySQLのドキュメント。読みたければまずココを訪問。 http://dev.mysql.com/doc/ たくさんの種類がありますので、自分が興味を持った(ある
昨日7月29日に Windows 10 が公開されました。世界中、阿鼻叫喚の嵐になるであろうとの予想と裏腹に、きわめて平穏なこの世の中。これが学習効果というものでしょうか。安易に新しいものに飛びつかない。正しい姿勢です。 が、そこは勇猛果敢さの見せどころ。えいやっと、Windows 10 へのアップグレードに挑んでみました。 (追記:一番苦労した、NEC LaVie HZ750 でのアップグレード失敗について、SSDを換装したことが影響していると考えています。やや強引というか割り切った方法ですが、アップグレードに成功しましたので、同じような現象でうまくいかなくて困っている方は、本記事最後のほうを参照ください) 何週間も前より、タスクトレイに「Windows 10 へのアップグレードを予約する」みたいな通知が出ていて、一部のマシンで予約しておいたのですが、29日晩になっても降ってこず、インス
8/27夜に東京渋谷で開催された、日本MySQLユーザ会会2015年8月、に参加してきました。 今回は Yoku0825さんが幹事をしてくださったので、私は気楽に一参加者で。 https://atnd.org/events/68323 kamipo さんが Oracle ACE(おらくるえーす)になったので、お祝いに講演いただくのが主たる趣旨(というか名目というか)。 Oracle ACE というのは、Oracle製品について著しい何らかの成果をあげた人を Oracle 社が認定するもので、Oracle ACE になると、なんか透明な置物がもらえるという特典があるそうです。 MySQLをExpertとする Oracle ACE は、世界でも30人しかおらず*1、日本人では、松信さん、SH2さん、Yoku0825さんに次いで4人目。 今回のメニューは、ざっとこんな感じ。 @kamipo さん
2015年8月21-22日に東京ビッグサイトで開催された YAPC::Asia TOKYO 2015 に参加してきました。Perlのお祭りです。 毎年開催は知っていたものの、日程が合わなかったり、迷っているうちにチケットが売り切れてしまったりして、過去に参加したことがあるのは、たったの1回。それでも「すごいことを、いとも当たり前のように楽んでいる」という雰囲気がとても印象に残っていました。 そんなわけで、10年を迎えた2015年。今年で一旦 YAPC::Asia を最終回とするとのアナウンスがあり、万難を排してスケジュールをあけ、この日を楽しみにしていました。 0日目(前夜祭) 木曜日の夜。ビールとスナックが用意されて、2トラックのセミナー形式。前夜祭なのに2トラック。なんといっても、鶉(uzulla)さんの講演芸にすっかりやられました。会場の空気のつかみ取り方が素敵。見習いたいけどたぶん
CentOSの標準のMySQLは、バージョン 5.1です。これは、2013年末にサポートが終了した「かなり古い」バージョンです*1。 なので、最新のMySQLをCentOSに入れたい場合は、自分でちょっとした作業が必要になりますが、いままで私は、自分でrpmファイルをwgetしてきてインストールしていました。 今回、新たに(実験用に)MySQLをインストールする機会があったので、かねてより気になっていた「yumリポジトリを追加してのインストール」を、やってみました。じつは初めて。 この日記は、以下のURL(MySQLドキュメント)の、劣化コピーです:-p。 http://dev.mysql.com/doc/mysql-repo-excerpt/5.6/en/linux-installation-yum-repo.html ●目的:CentOS6.5に、yumリポジトリを追加して、MySQL
次のページ
このページを最初にブックマークしてみませんか?
『sakaikの日々雑感~(T)編』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く