タグ

ブックマーク / nippondanji.blogspot.com (44)

  • MySQL 8.1登場!!Innovation ReleaseとLTSについて

    MySQLの最新バージョンである「8.1」が発表されたので超久しぶりに筆を取った。しばらく筆を取らなかった理由は個人的なものなのだが、このブログはごく個人的な活動であるので諸々の事情はご容赦頂きたい。 さて、MySQL 8.0の次のバージョン番号は何になるかという憶測は色々あったと思うのだが、8.1というものに落ち着いた結果になった。(9.0にしてしまうと、2桁目の番号が意味をなさなくなってしまうからね!!ちなみに次のバージョンは8.2、8.3・・・という具合に続く予定だ。)8.1という番号はバグデータベース上で既にチラチラと出ていたので、公式な発表よりも前に気づいていた人も多かったのではないだろうか。稿では、バージョン8.1の概要と、8.1リリースと同時に発表されたInnovation ReleaseおよびLTS(Long Time Support)について解説しようと思う。 Inno

    MySQL 8.1登場!!Innovation ReleaseとLTSについて
  • MySQL 8.0登場!立ち止まることを知らない進化はこれからも続く。

    ゴールデンウィークはいかがお過ごしされただろうか。今年は天気も良く、行楽日和が続いたように思う。 さて、先日MySQL 8.0が正式にリリースされた。少し時間が経ってしまったが、今回はMySQL 8.0の新機能について紹介したい。コミュニティ版のダウンロードはこちらから可能だ。 ひとつ前の正式バージョンはMySQL 5.7だったのだが、MySQL 8.0は非常に大きなリファクタリングが含まれており、5.x台のバージョン番号を捨て去ろうという話があった。そこで、次のメジャーバージョンは最初の桁を増やすということになったのだが、MySQL 6.0は過去に既に存在し、買収などの騒ぎで開発が頓挫してしまった経緯がある。7.xはMySQL NDB Clusterと被っている。というわけで、5.7の7の部分の次という意味合いもあって、8.0というバージョン番号を引っさげ、満を持しての登場となった。その

    MySQL 8.0登場!立ち止まることを知らない進化はこれからも続く。
  • まだMySQL 5.5で消耗してるの?MySQL 5.6でクラッシュセーフなレプリケーションを活用して枕を高くして眠れる日々を満喫する方法

    MySQL 5.6が登場してからかなりの月日が過ぎたが、他のことで多忙だったせいか、MySQL 5.6についてはあまりブログで情報を発信していないことに気がついた。これはイカン!!と思い、MySQL Casual Advent Calendar 2014に合わせて、MySQL 5.6を使用する上で最もオススメしたい機能であるクラッシュセーフなレプリケーションについて解説しようと思う。この記事は16日目の記事である。 レプリケーションがクラッシュセーフとはどういうことかクラッシュセーフとは、何らかの事情により、プロセスがダウンしたりマシンが電源ごと落ちたり(つまりクラッシュ)しても、再起動後に以前の状態に戻って処理を再開できるということだ。データのクラッシュリカバリであればみなさん既によくご存知であろう。(REDOやUNDOするアレのことだ。稿では面倒臭い・・・ではなかった、題ではないた

    まだMySQL 5.5で消耗してるの?MySQL 5.6でクラッシュセーフなレプリケーションを活用して枕を高くして眠れる日々を満喫する方法
  • MySQLのZero Dateへの対処法

    MySQLのZero Dateへの対処法 MySQLの0000-00-00 00:00:00は使ってはならない - そーだいなるらくがき帳 このエントリで、MySQLのゼロが含まれる日付け、いわゆるZero Dateについての問題点が色々挙げられているのを見かけたので、手短に対処法を述べておきたい。 Zero Dateが存在する理由なぜそんな厄介なデータが存在するのかというのは、開発の経緯や互換性といった深淵な理由からなので気にしないで欲しい。まあ、人間は完璧ではないので、人間が作るプログラムも完璧ではないということだ。 当然ながらSQL標準から外れているものは、例外的な使い方をしたい場合を除き、使うべきではない。アンチパターンも使い方次第という話もあるが、例外的な使い方は基的に苦労が増えるので使うべきではない。 SQLモード実は、Zero DateはSQLモードで禁止できる。SQLモー

    MySQLのZero Dateへの対処法
    jitsu102
    jitsu102 2018/11/03
    Zero Date 問題
  • OSC広島と中国地方DB勉強会に参加しました。

    かねてから予告していた通り、OSC広島と中国地方DB勉強会(第5回)に参加させて頂いた。両方のイベントがこの土日で連続して行われたので、いずれのイベントにも遠方からの参加者がたくさんいて盛況だったように思う。OSC広島ではデモマシンの展示を、中国地方DB勉強会ではスライド(MySQLのトラブルシューティングについて)の発表をそれぞれやらせて頂いたので、今日はその報告をさせて頂こう。 OSC広島に持っていったデモマシン既にツイッターやFacebookで目にされた方もいらっしゃるかも知れないが、今回展示したマシンのコンセプトは「持ち運べるMySQL Clusterのデモ環境」というものだ。MySQL Clusterを動作させるためのBeagle Bone Black 6台と、コンソール用のRaspberryPi、100Mbpsのネットワークスイッチ、薄型のモバイルモニター、トラックポイントつき

    OSC広島と中国地方DB勉強会に参加しました。
  • RDBMSに関する典型的な誤解が絶えないという現実

    新入社員必読、データベースの基を理解しよう - データベースはなぜ必要なの?:ITproという記事に対するブクマで次のようなIDコールが来た。(現在はコメント返しへのお礼が入っているので、文字数制限のためオリジナルのコメントは少し切り詰められている。) "リレーショナルデータベースはすべてのデータを2次元の表形式で表現"こういうのもリレーションが2次元構造という誤解の一種なんだろうか。id:nippondanjiさんが書いてたような。 さて、この疑問に対する正解は如何なるものだろうか? つい先日「7つのデータベース 7つの世界」の書評で書いたばかりだが・・・ 言うまでもなくその通りである。 リレーションが2次元的な構造を持っているというのは典型的な誤解だ。(ちなみにリレーションの次元は属性の数に等しい。n個の属性があるリレーションはn次元。)リレーショナルモデルについてちゃんと学習してい

    RDBMSに関する典型的な誤解が絶えないという現実
    jitsu102
    jitsu102 2013/08/11
    「実践されない理論は無意味である。だが、理論のない実践もまた危険なのである。」
  • プログラミングを教育する前に必要なこと

    Rubyの作者、我らがMatzが政府がプログラミングを義務教育にしようとしていることに対して苦言を呈している。Matzが指摘している問題点は3つ。 誰が教えるか。あるいは教えることが出来る教師は揃っているのか。 どのように評価するか。プログラミングは芸術に近いのにどうやって点をつけるのか。 何を教えるか。 詳しいことは元記事を見て頂きたい。もちろん私はMatzの苦言には大いに賛同している。正直政府は無計画にキャッチーなネタをぶちあげているだけにしか見えない。だが、コンピュータについての教育は一切役に立たないのかというと、そうでもないように思う。dankogai氏がMatz氏の記事を受けて、コンピュータを遊び道具として置いとけみたいなことを書いてるけど、それもどうかなと思う。遊び道具として置いといたところで、自発的にプログラミングをしようと思う子供などほとんど居ないだろう。せいぜいゲームで遊

    プログラミングを教育する前に必要なこと
  • MySQL 5.6正式リリース!! #mysql56

    待望のMySQL 5.6が正式にリリースされた。正式版の最初のバージョンは5.6.10である。コミュニティ版(MySQL Community Server)は下記のページからダウンロードできるので、ぜひ今すぐダウンロードして頂きたい。 MySQL Downloads MySQL 5.6のリリースにあわせて、GUIツールであるMySQL Workbenchやドライバも新しいバージョンがリリースされており、MySQL 5.6対応となっている。それらの周辺ソフトウェアもチェックして頂けると幸いである。 新機能について正式版の機能はリリース候補版の頃から特に変更はない。(リリース候補版まで到達したということは、正式版の機能セットは固まったということであり、大きな機能の変更はないことを意味するからだ。)なので新機能については、リリース候補版が出たときに書いたエントリを参照して頂きたい。 漢(オトコ)

    MySQL 5.6正式リリース!! #mysql56
  • パーティショニングの使用例 - http session情報

    今日もパーティショニングの話の続きである。 パーティショニングが非常にフィットする(たぶん昨日の例よりも)もう一つのケースは、数日間だけ必要なデータを蓄えておくような場合だ。例えば、HTTPセッションやログ情報などが良い例ではないだろうか。そういう場合には、日付を使ってRANGEパーティショニングをするのである。RANGEパーティショニングでももちろんPruningによって性能の向上は出来るのだが、それよりも何よりも高速に不要なパーティションを破棄できるというのが大きい。パーティションの破棄は、内部的にはテーブルのDROPとほぼ同じ扱いなのである。DROPのスピードはストレージエンジンによるが、InnoDBやMyISAM、NDBMySQL Cluster)ならばいくらデータを含んでいても関係なくDROPは一瞬である。テーブルから大量の行を削除すると、フラグメンテーションが発生したり、イン

    パーティショニングの使用例 - http session情報
  • MySQLサーバーにIPv6で接続する

    最近、IPv6へ移行する動きが世界中で高まっている。(参考:IPv6格導入を全世界で一斉に開始 - CNET Japan)MySQLでもIPv6を使って接続したいというニーズはあるだろう。実は、MySQLでもバージョン5.5.3からIPv6による接続をサポートしている。今日はMySQLサーバーにIPv6で接続する方法を紹介しよう。 デフォルトの状態ではIPv6による任意のホストからの接続はできない。ローカル(::1)による接続なら可能だが、他のホストからのログインを許可するには設定が必要だ。とはいえ設定は至って簡単で、次のようにbind_addressを設定するだけである。 [mysqld] (中略) bind_address=:: こうすることでIPv4、IPv6による任意のホストからの接続が可能になる。(もちろんログインするにはアカウントが必要だ。任意のホストから接続出来るといって

    MySQLサーバーにIPv6で接続する
  • ダウンロード刑事罰化について考える

    先日、あろうことか国会において議員立法でダウンロードの刑事罰化の法案が可決してしまった。これは日という国の発展にとって由々しき事態である。これはまさに日の経済の発展にとって非常事態であると言っても過言ではない。しかしながら我々は今現在この日で暮らしている真っ最中であり、ただ黙って日が没落していくのを見ていくわけには行かないだろう。そこで、今回はダウンロード刑事罰化について、その問題点と我々が取るべき行動について論じてみようと思う。 これまで見ていたウェブページが見られなくなるか 我々にとって直接的に影響が出ると考えられるのはまずこの点だ。だが待って欲しい。我々はどうやってそのようなコンテンツを避けて通ればいいのだろうか。「このページの閲覧およびコンテンツのダウンロードは違法です」と宣伝しているウェブページがあるだろうか?あるファイルをダウンロードすることが違法だと判別するにはどうす

    ダウンロード刑事罰化について考える
  • 書評: <反>知的独占 〜眼から鱗の2010年の必読書〜

    この書籍は、筆者が「今年最も読んで良かった!」と思う一冊である。当然ながら皆さんにもぜひ読んでいただきたいので、ブログでも紹介させていただくことにする。書は「知財が如何に社会にとって害悪であるか」ということを解説した書籍であり、「知財でひと儲けしよう」という人には向かない。来社会があるべき姿、つまり「知財がなければ世の中はもっとよくなる」ということについて知りたい人は、ぜひこのを手に取るべきである。 これまでにない画期的な書籍ミッキーマウスの著作権が切れる前に延々と伸ばされる著作権保護期間、企業同士の特許訴訟合戦など、知財が如何に世の中にとって非効率であるかということを示す証拠はたくさんあるが、実際にそれらが必要のないものであることを、経済の観点から示した書籍というものは存在しなかった。文では「知財は必要ない」証拠をたくさん挙げた論文であっても、結論では何故か理論が飛躍して「やっ

    書評: <反>知的独占 〜眼から鱗の2010年の必読書〜
  • MySQLと英語のリスニングを同時に勉強する方法。

    英語を勉強したいが技術も勉強したい。それは技術者にとって悩ましい悩みではいだろうか。そんな悩める技術者諸君にとって喜ばしい知らせがある。MySQLの勉強も英語のリスニングも同時にできる、そうOurSQL Database Community Podcastならね。 OurSQL: The MySQL Database Community Podcast だいたい1回30分前後でMySQLについて様々なトピックについてのディスカッションが行われている。既にエピソード69までたまっているのでまさに聞き放題だ!Webページ上で直接聴くこともできるし、お気に入りのミュージックプレイヤーで聴くなら下記のPodcast FeedのURLを登録すれば良い。筆者はAmarokで聴いている。 http://technocation.org/audio/feed Enjoy!!

    MySQLと英語のリスニングを同時に勉強する方法。
  • 私は如何にしてWindowsの呪縛から逃れ、Linuxデスクトップという涅槃の環境にたどり着くことが出来たのか。

    先日、いますぐWindowsを捨ててデスクトップでGNU/Linuxを使う10+の理由というエントリを書いたところ結構な反響があったと同時に、「Windowsから離れることなんて出来るワケがない」という否定的な意見も多く見られたように思う。確かにWindowsにしか存在しないソフトウェアを使う作業(例えばボカロ作曲)などをライフワークにしている人はWindowsから離れることはできないだろう。 最近はMacユーザーが劇的に増えてきた。筆者もかつては仕事Macを使っていた。Macでも仕事を進める上で困ることはほとんどなかった。(現在もそのMacは使っているが、OSXではなくPear OSが動いている。)筆者が幸運にもWindowsに縛られない仕事だったということも大きいだろう。(仕事上どうしてもWindowsから離れられないという人にはまず転職をお勧めしたい。プログラマやDBAなどのエンジ

    私は如何にしてWindowsの呪縛から逃れ、Linuxデスクトップという涅槃の環境にたどり着くことが出来たのか。
    jitsu102
    jitsu102 2012/01/06
    本文の主旨とは関係ないけど、Pear OS Linux初めて知った。http://pear-os-linux.fr/
  • MySQLにおけるレプリケーション遅延の傾向と対策

    レプリケーションはMySQLで最もよく使われる機能のひとつだ。レプリケーションは基的に非同期でデータの複製を行う仕組みになっているのだが、非同期故にどうしても逃れられない問題がある。そのひとつが今回のテーマ、遅延である。というと、MySQLのレプリケーションはすぐに遅延が生じてしまうように感じてしまうかも知れないが、そのようなことはない。ほとんどの場合は即座にスレーブの更新が行われる。 なぜ遅延は発生するのか、どのように遅延が起きていることを調べるのか、どのように回避するのかということをエントリでは解説したい。うまく遅延と付き合って、MySQLのレプリケーションをより快適に運用してもらえればと思う。 そもそも遅延とは何かMySQLのレプリケーションは非同期で行われる。これは準同期でも同じであり、スレーブにおいて更新が起きるのはマスターよりも一瞬遅れてしまう。これは非同期であるが故に逃れ

    MySQLにおけるレプリケーション遅延の傾向と対策
  • lessでソースコードに色をつける

    シェルの操作中「テキストファイルをちょこっと覗きたいな」と思ったときに抜群に便利なlessコマンドであるが、普段綺麗に色付けされたソースコードを見慣れていると、モノクロのソースコードの見づらさに愕然としてしまう。結局lessを終了して他のエディタで開きなおすことになるのだが、lessでソースコードに色付け(シンタックスハイライト)できれば便利なのになーっ!と思ったことはないだろうか。そう、あるんです!lessでシンタックスハイライトする方法はあるんです!というわけで、今日はその方法を紹介しよう。 GNU Source-highlight結論から言うと、今日紹介する方法はGNU Source-highlightを使う。GNU Source-highlightを使えばイッパツだ。なのでまずGNU Source-highlightをインストールしよう。UbuntuやFedoraならリポジトリにあ

    lessでソースコードに色をつける
    jitsu102
    jitsu102 2011/11/10
    Macでもできそうだ
  • もしもデータベースサーバがクラッシュしたら

    人の作ったものは完璧ではない。完璧でないものはクラッシュする。故にデータベースはクラッシュする。サーバハードウェアの故障、OSのクラッシュ、データベースそのもののバグなど原因は様々であるが、永遠に停止することなく動き続けるRDBMSというものは存在しない。もちろん数年間無停止で問題が出ない場合もあるが、クラッシュするときはするので対策が必要である。もしもの時に備えて抜かりないのがスマートなオトコのスタイルである。データベースのご利用は計画的に。 と思ったそこのアナタ!!人生そんなに楽ではありません。 もちろんRDBMSはトランザクションのDurabilityを保証しているので99%の場合はそれでOKだけど、それはCOMMITが成功した場合の話。COMMITは大抵の場合高速な処理であるが、それでも処理にかかる時間はゼロではない。アプリケーションがデータベースサーバにCOMMITを送信してから

    もしもデータベースサーバがクラッシュしたら
    jitsu102
    jitsu102 2011/11/01
    idempotentな性質を保証するための仕組み->Version Numberパターン
  • InnoDBのログとテーブルスペースの関係

    InnoDBのデータ領域はログファイルとテーブルスペースという、切っても切れない2種類のファイルから構成されている。ログファイルは名前からするとただのログだから削除しても平気かな?と思って削除してしまうという問題が後を絶たない。そこで、今日はログファイルとテーブルスペースの関係について説明しようと思う。 InnoDBのログファイルは、別名WAL - Write Ahead Logと呼ばれるもので、名前を日語に直すと「前もって書き込んでおくためのログ」とでも呼べるだろうか。InnoDBのテーブルに対して行われた更新は、全ていったんログに書き込まれるのである。トランザクションがコミットされると、innodb_flush_log_at_trx_commit=1が設定されていればログファイルに書き込みが行われる。0または2の場合には、ログバッファと呼ばれる領域にデータが保持される。その後、時間を

    InnoDBのログとテーブルスペースの関係
  • ALTER TABLEを上手に使いこなそう。

    テーブル定義を変更したい。インデックスが壊れてしまったので再作成したい。そんな場合はALTER TABLEを使う。ALTER TABLEはテーブル定義を変更するお馴染みのコマンドであるが、その挙動は意外と知られていない。(エキスパートとおぼしき方々からも度々質問を受ける。)そんなわけで、今日はALTER TABLEについて解説しようと思う。 まず結論から言うと、なんとMySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである。なんて無駄なことを!?と思うかも知れないが、テーブル定義(スキーマ)の変更を動的に行うには、ストレージエンジンによるサポートが必要であり、動的なスキーマ変更をサポートしているストレージエンジンはまだ少ないのである。(動的スキーマ変更をサポートしているのはMySQL Clusterぐらいだ。しかも追加だけ。)デフォルトで利用出来るMyISAMはInn

    ALTER TABLEを上手に使いこなそう。
    jitsu102
    jitsu102 2011/07/21
    MySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである
  • たった3秒でInnoDBのデータローディングが快適になるライフハック

    MySQLに限った話ではないが、データベース管理システムに大量のデータを投入するのは時間が掛かり大変苦痛を伴う作業である。劇的に効能があるわけではないが、MySQLを利用しているとき、特にInnoDBを使っている場合にはデータの投入を高速化するためにいくつかテクニックがあるので紹介しよう。皆さんの作業時間が短縮され、少しでも早く帰路に着いたりサービスインさせたりという形でお役に立てれば幸いである。ちなみに、タイトルはネタであるのだが、もし当に3秒で以下の全ての設定を行えた人が居たら教えて頂きたい! ログファイルサイズの調整データ投入時に限った話ではないが、ログファイルサイズを調整するのは更新性能にとって非常に重要なファクターである。バッファプールのサイズが重要なことに代わりはないが、同じぐらいログファイルのサイズも重要である。InnoDBはログファイルを使い切ってしまうと、バッファプール

    たった3秒でInnoDBのデータローディングが快適になるライフハック