タグ

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

  • 漢(オトコ)のコンピュータ道: ダウンロード違法化の審議について一言言っておく

    ライセンス違反の静止画像のダウンロードを違法化しようという法律の審議が行われているらしい。 海賊版静止画のDL規制を 文化審議会が意見まとめる:朝日新聞デジタル はっきり言って、これは由々しき事態である。インターネットの利用に大きな制約をかけ、日文化を破壊するであろう、最悪の法案であると言える。はっきり言って、このような低レベルな話し合いが行われていること自体に私は憤怒している。最近は多忙のため筆を置いていたのだが、久々に筆をとることにした。この法案の問題をしてきしておかねばならないからだ。 技術的に取り締まりは難しい一技術者としてこれだけは言っておきたい。そもそも、ダウンロード側を意図したものだけ上手く取り締まるような技術は存在しない。 まず、ファイルのダウンロードというが、それは範囲が大きすぎる。多くのウェブページには画像が多数埋め込まれているが、基的にそれらは画像ファイルを特定

    漢(オトコ)のコンピュータ道: ダウンロード違法化の審議について一言言っておく
    honeybe
    honeybe 2018/12/10
  • そろそろTempTableストレージエンジンについて一言言っておくか

    MySQL 8.0で内部的に作成されるテンポラリテーブルが、HEAPストレージエンジンからTempTableストレージエンジンへと変更されたことは、皆さんもご存知だろう。このストレージエンジンはテンポラリテーブル専用として設計されたもので、実体を持ったテーブルとしての利用は想定していない。一応、internal_tmp_mem_storage_engineオプションを指定することで、従来のHEAPストレージエンジンも選択は可能であるが、個人的にはそれはお勧めしない。 TempTableストレージエンジンは、メモリとディスクの両方を自ら使い分ける。これは、従来型のテンポラリテーブルとは違う。HEAPストレージエンジンはインメモリ専用で、tmp_table_sizeあるいはmax_heap_table_sizeを超えるサイズが必要になると、ディスク上のテーブルへと自動的に変換が行われるという仕

    そろそろTempTableストレージエンジンについて一言言っておくか
    honeybe
    honeybe 2018/06/21
  • 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への対処法
    honeybe
    honeybe 2018/05/14
  • 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登場!立ち止まることを知らない進化はこれからも続く。
    honeybe
    honeybe 2018/05/07
  • db tech showcase 2017 tokyoで発表してきました。MySQL NDB Cluster 7.5と現在開発中の新機能について #dbts2017

    ブログを更新するのは久しぶりである。ここのところ、ずっと缶詰めになってとある書籍を書いていたからだ。書籍は大詰めを迎えており、レビューワー&出版社とのやり取りが続いている。 そんな中、先日db tech showcase tokyoでMySQL NDB Cluster 7.5の新機能、そして今後予定されている新機能の中で、すでにDMRにおいて明らかになっているものについて、発表する場を頂いた。新機能の詳細については、以下のスライドを参照して欲しい。 正直なところ、今回紹介した新機能の中には、とてもワクワクするような派手目のものはない。でも堅実かつ着実に、既存のソフトウェアを改良する内容となっている。とりわけ、MySQL NDB Cluster 7.5は、MySQL 5.7との統合がなされているので、MySQL 5.7の豊富な新機能が利用できるのは大きな利点である。また、パフォーマンス・スキ

    db tech showcase 2017 tokyoで発表してきました。MySQL NDB Cluster 7.5と現在開発中の新機能について #dbts2017
    honeybe
    honeybe 2017/09/08
  • RDBMSに関する典型的な誤解が絶えないという現実

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

    RDBMSに関する典型的な誤解が絶えないという現実
    honeybe
    honeybe 2017/06/07
  • データベースについてのそもそも論

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

    データベースについてのそもそも論
    honeybe
    honeybe 2016/10/05
  • MySQL 5.7新機能解説:レプリケーション、セキュリティ編

    今月の頭、詳解MySQL 5.7の出版記念第一弾として、MyNA(日MySQLユーザ会)名義でイベントを行ったので、その際使用したスライドを紹介しておこう。今回紹介した新機能のカテゴリは2つ。レプリケーションとセキュリティである。レプリケーションはMySQLの運用と切っても切り離せないほど重要なものであり、そしてデータベースサーバーにとってセキュリティが重要であることは、言うまでもないだろう。 今回のバージョンでは、レプリケーションが大きく進化している。 まず、MySQL 5.7では、レプリケーションのトポロジの限界を打ち破った!!MySQL 5.6までのバージョンでは、スレーブはひとつのマスターしか持つことができないという制約があったのだが、それがなくなった。すなわち、スレーブが複数のマスターからデータを連続的に複製することができるようになったのである。それにより、これまで以上に様々な

    MySQL 5.7新機能解説:レプリケーション、セキュリティ編
    honeybe
    honeybe 2016/09/29
  • 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登場!!
    honeybe
    honeybe 2016/09/22
  • 書籍発行のお知らせ:詳解MySQL 5.7 〜進化したMySQLをよく知るためのテクニカルガイド〜

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

    書籍発行のお知らせ:詳解MySQL 5.7 〜進化したMySQLをよく知るためのテクニカルガイド〜
    honeybe
    honeybe 2016/08/04
  • オプティマイザトレースによるちょっとディープな快適チューニング生活

    メリークリスマス!!今日はMySQL Casual Advent Calendar 2015の25日目をお届けするぞ!! 前回のエントリでは、MySQL 5.7におけるオプティマイザの改良点や新機能についてのスライドを紹介した。MySQL 5.7のオプティマイザの良し悪しは、ぜひみなさんの手で確かめて頂きたい。ところで、オプティマイザといえばひとつ前のバージョンである、MySQL 5.6で追加されたオプティマイザトレースという機能がとても便利だ。使いこなせばクエリチューニングの強い味方になるので、ぜひまだ使ったことがないという方は、一度試してみて欲しい。ブログではまだ紹介していなかったので、今日はその使い方と見方を紹介しようと思う。 オプティマイザトレースとは一体何か。ひとことで表せば、オプティマイザがどのような実行計画を検討・比較し、どの実行計画を選択したかということを、詳細に表示して

    オプティマイザトレースによるちょっとディープな快適チューニング生活
    honeybe
    honeybe 2015/12/25
  • この世から残念な○○が無くならない理由

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

    この世から残念な○○が無くならない理由
    honeybe
    honeybe 2015/09/04
  • MySQL・PostgreSQLユーザーグループ(MyNA・JPUG)合同DB勉強会で発表した資料を公開しました。「データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜」

    表題の通り、MyNAとJPUGの合同DB勉強会で発表をしたので資料を公開した。 内容の詳細はスライドそのものを見ていただくとして、言いたいことの主旨はこうである。世の中に完璧なデータモデルはないので、NoSQLは当然の如く必要になる。だが、何でもかんでもNoSQLを使えば良いというものではない。むしろアプリケーションが必要としているデータモデルが何かということをよく理解し、当に必要な場合にこそ、NoSQLを使うべきなのである。つまり「ご利用は計画的に!」ということだ。 大切なのは、様々なデータモデルを理解し、アプリケーションにとってベストな製品を選択するということだ。ベストなのがRDBかも知れないし、そうでないかも知れない。最適なデータモデルを選択した場合に、出来上がったものの性能も最高になるし、開発効率も最も良くなる。データベースの主流はRDBだが、それはリレーショナルモデルがカバーで

    MySQL・PostgreSQLユーザーグループ(MyNA・JPUG)合同DB勉強会で発表した資料を公開しました。「データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜」
    honeybe
    honeybe 2015/06/30
  • RDBにおけるキャッシュという考え方

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

    RDBにおけるキャッシュという考え方
    honeybe
    honeybe 2015/06/17
  • DB Tech Showcaseで発表したスライドを公開しました:MySQL Cluster 7.4で楽しむスケールアウト

    表題の通り、MySQL Cluster 7.4で楽しむスケールアウトというタイトルのスライドを公開した。 以下余談。(=話が発散してしまうので、発表では言わなかったこと。) MySQL Clusterは、その出自がMySQLとは別プロダクトで、なおかつ独立して動作するデータベース製品であるが故に、通常のMySQLとは使い方の幅が違うように思う。(元々MySQLとは別プロダクトという意味では、InnoDBもそうだが。)自分でスライドの絵を描いていて思ったのだが、使い方の幅が広がると言えば聴こえは良いが、ぶっちゃけ使い方としては複雑になる部分は否めない。だが、複雑化というものは、性能を求めていく上である程度は仕方がないものだと思う。例えばキャッシュが良い例だ。CPUのキャッシュメモリやファイルシステムキャッシュは、その存在はシステムをより複雑にしてしまっているが、その分大きな性能向上の見返りが

    DB Tech Showcaseで発表したスライドを公開しました:MySQL Cluster 7.4で楽しむスケールアウト
    honeybe
    honeybe 2015/06/15
  • MySQL 5.6リファレンスマニュアル日本語版のお知らせ

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

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

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

    書籍出版のお知らせ:理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL
    honeybe
    honeybe 2015/02/03
    ガタッ / 達人出版会での出版に期待。
  • 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について仕組みから理解する
    honeybe
    honeybe 2014/12/26
    あとでじっくり。
  • まだ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でクラッシュセーフなレプリケーションを活用して枕を高くして眠れる日々を満喫する方法
    honeybe
    honeybe 2014/12/16
  • MEANスタックは破壊的か

    最近、MEANがイイという話をチラホラと耳にする。先日も次の記事がはてブで話題になっていた。 MEAN(MongoDB, Express, AngularJS, Node.js)スタックが優れている理由 - Mozilla Open Web Day in Tokyoを終えて - albatrosary's blog この記事の冒頭では、MEANはLAMPに変わる技術として紹介されているが、果たしてそれは正しいのだろうか。(この記事では、LAMPを例にとりつつJavaがどうのという記述があるので、恐らくはLAMPではなく既存のリレーショナルデータベースを用いたアーキテクチャ一般について述べたいのではないかと思う。)MEANについて少し思うところがあるので、今日はMEANの可能性について書き綴っておこうと思う。ただし、私自身MEANスタックと呼ばれるシロモノは使ったことがなく、構造を理解した上

    MEANスタックは破壊的か
    honeybe
    honeybe 2014/10/10