タグ

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

  • 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の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への対処法
  • データベースについてのそもそも論

    先月のはじめのほうで、「リレーショナルデータベースとの上手な付き合い方」というタイトルで、2回発表をした。ひとつは「まべ☆てっく Vol.1」であり、もうひとつは「Hacker Tackle(ハカタクル?)」である。 「リレーショナルデータベースの開発・運用に纏わるもろもろの話をして欲しい」というような内容の話をしてくれないかという同じような依頼を、ちょうど2日違いのイベントで頂いた。9/8のまべ☆てっくと、9/10のHacker Tackleである。そうなると必然的に話す内容も、同じようなものになってくる。同じ人物(=私)が話すのだから、テーマも同じで時期も同じであれば、内容が同じようなものになるのが自然である。もし違うものになってしまっているのであれば、片方はウソをついているということになるはずだ。今日は発表に使用したスライドを紹介しつつ、なぜデータベースを使うべきなのか(あるいは使う

    データベースについてのそもそも論
  • MySQL 8.0.0 Development Milestone Release登場!!

    先月、詳解MySQL 5.7を発刊したばかりであるが、MySQL 5.7自体は去年の10月にリリースされたバージョンである。それから約1年弱、MySQLは開発の手を緩めること無く日々改良を重ねている。 そう、MySQL 8.0の登場である。 現在はDevelopment Milestone Release(通称DMR)という状態なので、まだ正式版における機能が固まっている段階ではないという点には注意して欲しい。MySQLの開発プロセスでは、DMRをリリースするごとにその段階で成熟した機能をマージする。DMRを何度かリリースした後に、キリの良いところでリリース候補版となって正式版で追加される機能が一応確定し、その後バグ修正を経て正式版(GA版)がリリースされる予定となっている。詳しくはMySQLのマニュアルを参照して欲しい。 バージョン8.0!!5.7の次は誰もが5.8だと思っていただろう・

    MySQL 8.0.0 Development Milestone Release登場!!
  • 書籍発行のお知らせ:詳解MySQL 5.7 〜進化したMySQLをよく知るためのテクニカルガイド〜

    既に昨日のdb tech showcaseのスライドでご存じの方も多いだろうが、この度MySQL 5.7の新機能を解説するための書籍を発行させていただくこととなった。8月23日発売予定である。 MySQL 5.7の新機能については、これまでブログでは紹介してこなかった。というのも、あまりにもボリュームが多すぎて、ブログという媒体でカジュアルに紹介するには向いていないと思ったからだ。とはいえ、MySQL 5.7を皆さんに使っていただくには、誰かが新機能をしっかりと解説しなければならない。どうするべきか考えた結果、書籍としてまとめて出させていただくことになった。 新機能について真面目に解説しようとすると、新しいポイントがどこなのかということを言及するために、結局のところ元々の機能についてもある程度解説が必要になってしまう。そういうわけで、この書籍では、MySQLが持つ機能の基的なコンセプトや

    書籍発行のお知らせ:詳解MySQL 5.7 〜進化したMySQLをよく知るためのテクニカルガイド〜
  • 「PCをWin7のままにしておきたいのに強制的にWin10にするMSが嫌だ!Linuxに行く!」という方へLinuxユーザーとして言っておきたいこと

    PCをWin7のままにしておきたいのに強制的にWin10にするMSが嫌だ!Macに行く!」という方へMacユーザーとして言っておきたいこと という記事を見かけたので、Linuxデスクトップユーザーからも一言だけ言っておく。 結論から。 「悪いことは言わないからやめておけ!」 以前、いますぐWindowsを捨ててデスクトップでGNU/Linuxを使う10+の理由というエントリを書いたことがあるので、使っちゃいけないみたいなことを書くと、「おいおい、いまさら何言ってんだよ」と思われる方も居るかも知れない。だが、以前のエントリの主旨は「GNUのWindows移植版であるCygwinを使うぐらいだったらGNU/Linuxはいかが?」という提案をするためのものであり、いわばCygwinを使うようなIT技術者向けのメッセージである。Cygwinが必要だということは、UNIXライクなツール群を必要とす

    「PCをWin7のままにしておきたいのに強制的にWin10にするMSが嫌だ!Linuxに行く!」という方へLinuxユーザーとして言っておきたいこと
  • キーボードを新しくした話(ErgoDox)

    昨年の話になるのだが、キーボードを新調した。それまでは東プレのRealForceシリーズを、その前はPFUのHHK Proを使用していたのだが、どうにも満足できなくなってしまったのである。ちなみに、HHK ProからRealForceへ乗り換えた理由は、ファンクションキーが欲しかったからである。Linuxユーザーなのになぜファンクションキーなんて使うんだ!!邪道だ!!と思われるかも知れないが、邪道で結構。いろんな機能をショートカットキーとして登録したい私には必要だったのである。 さて題である。この度私が購入したキーボードを紹介しようと思う。 超自由度が高いオープンソースなキーボード、ErgoDoxRealForceやHHK Proを何故使っていたかというと、静電容量無接点方式のキーが良かったからである。日々膨大な回数のタイプをするため、ソフトなタッチで指が疲れないキーボードがほしかったの

    キーボードを新しくした話(ErgoDox)
  • MySQL User Conference Tokyo 2015で発表しました:MySQL 5.7におけるオプティマイザの改良点

    昨日、告知させていただいたMySQL User Conference Tokyo 2015で登壇したので、その時の資料を公開した。MySQL 5.7の機能は全部ひとつのスライドで紹介しようとすると、多すぎて私にはコンパクトにまとめるだけの技量は無いため、今回はオプティマイザだけの紹介にした。興味のある方はご覧頂きたい。 そういえばすっかり忘れてしまっていたのだが、MySQL 5.7が登場した!!というブログエントリを書くのを忘れていた。もしかすると読者の皆さんの中には、MySQL 5.7が正式リリースされたことをご存じない方もいらっしゃるかも知れない。遅くなって申し訳ないが、MySQL 5.7は、バージョン5.7.9をもって正式版となっている。5.7.9は約2ヶ月前にリリースされた。ついでに言うと、バグ修正を含んだ5.7.10が既に出ている。 MySQL 5.7はまさにモンスターだ!!!と

    MySQL User Conference Tokyo 2015で発表しました:MySQL 5.7におけるオプティマイザの改良点
  • この世から残念な○○が無くならない理由

    少し前に、日Web技術界隈著名人の残念さ具合というタイトルの記事が話題になった。名指しで個人を批判している記事なので、リンクするのは控えておこうと思う。意見には賛同する部分はあるものの、読んでいて気持ちの良いものではないからだ。まだ読んでなくて興味のある人はググッて頂きたい。あと、言っておくが私自身はその記事でリストアップされている人たちの仕事ぶりは知らないので、評価については言及しない。 この記事を読んで思ったのは、別に残念なのは別にウェブ界隈に限った話ではないよなーというか、残念な人をこの世から撲滅するのは構造的に不可能ではないかということだった。特に後者についてはかねてより考えてきたことであり、これはもうある意味仕方のないことではないかと思う。具体的な例を挙げるのは避けるが、割と技術書なんかでも酷いものを見かける。 というわけで、今日はこの構造的な問題点について語ろうと思う。 圧倒

    この世から残念な○○が無くならない理由
  • RDBにおけるキャッシュという考え方

    RDBの専門家として日々活動している中で気づいたことのひとつに、「RDBはデータへのアクセスの実装をインデックスに頼っているが、インデックスは全ての問題を解決できるほど万能ではない」ということがある。インデックスというのはとても強力な部品であり、その点には全く異論はない。だが、世の中の全ての問題(クエリ)を解決できるほど、柔軟性に富んだものではないということだ。RDBは、どのインデックスを使ってデータへアクセスするかということを、オプティマイザを用いて判断する。大抵のRDB製品では、オプティマイザはよい仕事をするので、インデックスとオプティマイザの組み合わせによって、ほとんどの問題に対応できる。だが、100%ではないのであり、そのようなケースがシステムの性能問題を引き起こしたり、プログラマ(アプリケーションの設計者)に、NoSQLへ完全に移行したり、クエリ高速化のために非正規化をすると言っ

    RDBにおけるキャッシュという考え方
  • MySQL 5.6リファレンスマニュアル日本語版のお知らせ

    MySQL 5.6 リファレンスマニュアル というわけで、日語版のマニュアルがリリースされた。これまでMySQL 5.6のリファレンスマニュアルは英語版しか無かったのだけど、公式に日語版がリリースされる運びとなったので、是非参照して頂きたい。 かつてMySQL 5.1の日語版マニュアルが存在したのだが、そちらは現在ウェブから参照できなくなっている。(PDF版はダウンロードできるという話も。)MySQL 5.1の日語版マニュアルは、ぶっちゃけ翻訳があまりイケてなかったので、今後はぜひMySQL 5.6の日語版を参照してもらいたい。ついでにもう古のバージョンは窓から投げ捨てて、この機会に是非新しいバージョンへ移行してみてはいかがだろうか。 何か問題が見つかった場合には、ぜひバグレポートをお願いします。バグレポートのカテゴリは「Japanese Documentation」を選択してく

    MySQL 5.6リファレンスマニュアル日本語版のお知らせ
  • 書籍出版のお知らせ:理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL

    来る2月27日、データベースの新書籍を発売させて頂くことになった。タイトルは「理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL」となっている。単に「データベース」と書いてあるが、RDBがメインのテーマの書籍である。 多くの人が未だにRDBを使いこなせていないのではないか。RDBの使い方をマスターするには何が必要なのか。それがここ数年私が追ってきたテーマであり、この書籍を出すことになった動機である。 あまりにも酷いDB設計、あまりにもスパゲティなクエリ、あまりにも希薄なデータモデルへの理解。そういった問題はどこから生み出されるのか。そのひとつの結論としてたどり着いたのが、「そもそもRDBの使い方があまり理解されていないのではないか」ということだった。名著、SQLアンチパターンでは「やってはいけないケース」について学ぶことができるが、その反対のテーマ、つまり来どの

    書籍出版のお知らせ:理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL
  • オトコのソートテクニック2008

    今日は仕事納めだったので、一年の締めくくりとしてMySQLにおけるソートの話でもしようと思う。 インデックスを利用しないクエリで最もよく見かけるもののひとつは、ORDER BYを用いたソート処理だろう。もし、ソート処理においてインデックスを用いることが出来れば、MySQLは結果を抽出してから結果行をソートするのではなく、インデックス順に行を取り出せば良いので高速にソート処理することが可能になる。特に、LIMIT句やWHERE句を用いて行の絞り込みを行う場合は効果が絶大である。しかし、ひとたびインデックスを利用できない状況に直面すると、たちまちテーブルスキャンが発生して性能が劣化してしまう。 例えば、100万行のレコードを格納したt1というテーブルがあるとする。そのテーブルに対して以下のようなクエリを実行した場合を考えよう。 mysql> SELECT col1, col2 ... colx

    オトコのソートテクニック2008
  • MySQLレプリケーションの運用が劇的変化!!GTIDについて仕組みから理解する

    メリークリスマス!!やあ、良い子のみんな!!サンタクロース・・・ではなく、ヒゲモジャギークからのクリスマスプレゼントだよ!! というわけで、MySQL Casual Advent Calendarの25日目である。今朝Advent Calendarを覗いてみると、日分のエントリーが無かったので、急遽書くことにした。Advent Calendar最後の日、クリスマスを飾る記事のテーマはGTIDだ。 前回の投稿では、MySQL 5.6の目玉機能として、レプリケーションがクラッシュセーフになったことを挙げた。レプリケーションまわりで言えば、もうひとつ外せない目玉機能がある。それがGTID(Global Transaction ID)である。 GTIDは良くも悪くもレプリケーションの運用を変化させる。GTIDを使うことによって得られる最大のメリットは、CHANGE MASTER TOでバイナリロ

    MySQLレプリケーションの運用が劇的変化!!GTIDについて仕組みから理解する
  • ホワイトカラーの生産性を上げる方法

    先日、新「労働時間制度」創設へ検討指示 NHKニュースという記事(魚拓)が上がった。この記事を読む限りでは、政府はホワイトカラーの人たちの生産性を向上させるために新労働時間制度を創設しようとしているように見える。だが待って欲しい。労働制度を変えることで当に生産性が上がるのだろうか。今日は、政府が行なっている議論の問題点についての指摘と、当にホワイトカラーの生産性を上げる方法について考察してみよう。 政府は論点がずれている。なぜならば、結論ありきだから。まず、新労働時間制については次のように職種を限定した議論が行われているように見受けられる。 そして具体的な業種や業務について、経営企画や新商品の開発、海外プロジェクトなどを担うリーダー、それにITや金融関連のコンサルタント、資産運用を行うファンドマネージャー、経済アナリストなどを挙げています。 一方、田村厚生労働大臣は年収が数千万円に上る

    ホワイトカラーの生産性を上げる方法
  • 自由でオープンなウェブ終了のお知らせか?またはそれを守るために我々は何をするべきか。

    先日、MozillaがブラウザにEMEを採用することを発表してしまった。Mozillaには正直言ってがっかりだ。以前、DRMがウェブに持ち込まれようとしている未だかつてない危機というエントリで危惧していたことが現実になってしまった。フリーソフトウェア財団も今回のMozillaの発表に対して非難の声明を出している。 EMEがブラウザに搭載されるのは、自由でオープンなウェブにとって危機的な状況であると言える。今日はそのことについて警笛を鳴らしたいと思う。 ウェブは自由でオープンだから発展したそもそも、ウェブがこれだけ発展したのは、その仕様が自由でオープンだったからだ。現実にはブラウザごとにクセが強すぎるので半ば笑い話にしかならないが、建前上は互換性はあることになっている。そのため、ウェブページはどのブラウザあるいはOSであっても閲覧することができる。中にはサポートしていないブラウザを拒否するよ

    自由でオープンなウェブ終了のお知らせか?またはそれを守るために我々は何をするべきか。
  • 快適スケールアウト生活への第一歩。SPIDERストレージエンジンを使ってみよう!

    先月、Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジンというエントリでSPIDERストレージエンジンによるスケールアウトが凄い!という話を書いた。SPIDERストレージエンジンは凄いヤツだが、ノウハウがあまりウェブ上で見つからない。唯一見つかる日語の記事は、ウノウラボによる「国産MySQLストレージエンジン「Spider」の作者、斯波健徳氏に聞く 」だけである。SPIDERストレージエンジンは斯波氏による単独の作品であるため、斯波氏は開発だけで手いっぱいであり、使い方の紹介記事を書くことまでは手が回らないのであろう。こんな凄いストレージエンジンをドキュメントが足りないせいで使って貰えないなんて勿体ない!! というわけで、今日はSPIDERストレージエンジンの基的な使い方について紹介する。少し長いエントリであるが、最後までお付き

    快適スケールアウト生活への第一歩。SPIDERストレージエンジンを使ってみよう!
  • DB設計の難しさ

    今日は徒然なるままにDB設計について思っていることを並べてみようと思う。 ようやくWEB+DB Pressの次号の原稿を書き終えた。2年間の連載であるが、来年はプライベートが忙しくなる予定なので、連載はこれにて終了とさせてもらうつもりである。 「なぜ人はリレーショナルデータベースを使いこなせないのか」 このところ執筆や講演を通じてリレーショナルモデルについて説明する機会を色々頂いているが、それらの活動の根源となっているのが、この素朴な疑問である。その疑問をパワーにしてこれまで活動を行なってきた。 現時点での自分の回答は「データベース設計が難しいから」である。もちろんリレーショナルモデルそのものの難しさというのもあるが、それよりは「適切な使い分けができていない」ということが大きいように思う。言葉を変えると、リレーショナルモデルを適用すべきデータとそうでないデータの判断ができていないからDB

    DB設計の難しさ
  • InnoDBのREPEATABLE READにおけるLocking Readについての注意点

    日は、MySQL Casual Advent Calendar 2013の20日目である。というわけでカジュアルに小ネタを紹介しよう。 MVCC - Multi Version Concurrency Controlご存知の通り、InnoDBはMVCCを実装している。そのため、分離レベルがREPEATABLE READの場合には、行にロックをかけることなく、一貫した読み取りが可能になっている。 もし、あるトランザクションT1開始後に、別のトランザクションT2によって同じ行が書き換えられてしまった場合には、T1はロールバックセグメントにある古いバージョンの値を読み取ることができるので、T1内で実行したSELECTは常にT1開始時点のデータを参照することができるのである。大事なのでもう一度言うが、REPEATABLE READにおける単純なSELECTでは行ロックは必要ない。 Lost Up

    InnoDBのREPEATABLE READにおけるLocking Readについての注意点
  • IDの設計についてのさらに突っ込んだ議論

    今日も前回に引き続きデータベース設計の話をする。今回の話で一旦データベース設計については筆を置くつもり(ブログ書いてないで原稿書けよ>俺)であるが、その前に話をすっきりさせて置きたいと思う。最後を飾るテーマはIDの設計である。 数字しかないのに意味を含んだID前回のエントリを見ていただいた方から、次のような構造を持った学籍番号があるというフィードバックを頂いた。 全部数値で"入学年度下2桁"+"学科コード"+"学科内のあいうえお順の順位" このようなルールで割り当てた学籍番号を、単なる数値として扱うのであれば大きな問題はない。これは数値しか含まれていないので、SQLのデータ型としては単に数値型を使えば良いだろう。だが、学籍番号から入学年度を判断する、あるいは学科を判断するといった用途で使われるのであればやはり適切ではないといえる。リレーショナルモデルの観点だけからではなく、IDとして適切で

    IDの設計についてのさらに突っ込んだ議論