タグ

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

  • 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登場!立ち止まることを知らない進化はこれからも続く。
    stealthinu
    stealthinu 2018/05/07
    CTE導入。文字コードがUTF8mb4標準に。寿司ビール問題に対応するため『日本語を扱いたい場合には、utf8mb4_ja_0900_as_cs_ksを利用すると良い』などなど。
  • パーティショニングの使用例 - カーディナリティが低いカラムを使って検索する場合

    MySQL 5.1で追加された機能にパーティショニングがある。これは適切に利用すれば非常に強力な機能であることは間違いないのだが、使いどころが難しい。なぜなら、 インデックスをつけるだけでカバー出来る場合が多い。 パーショニングを使わずに、単にテーブルを分けてしまえばいい。 テーブルが巨大にならないとあまり効果を実感できない。 使い方を間違えると性能が落ちてしまう。 などの問題があるからだろう。 そんなわけで、今日と明日でパーティショニングが役に立つシーンを2つ紹介しようと思う。今日は一つ目、インデックスをつけたいカラムのカーディナリティが低い場合だ。カーディナリティとは日語に訳すと濃度とか訳されるが、要は値の種類(分散具合)のことである。例えば、YesかNoの2つの値しかとらないカラムは非常にカーディナリティが低く、インデックスをつけるととても効率が悪い。インデックスを使って目的の行を

    パーティショニングの使用例 - カーディナリティが低いカラムを使って検索する場合
    stealthinu
    stealthinu 2017/02/13
    パーティショニングをHASH使ってやる例。確かにこういう場合はHASH使いたいな。
  • 「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ユーザーとして言っておきたいこと
    stealthinu
    stealthinu 2016/03/15
    『結局自分はGentoo+KDEという環境に落ち着いた。その使い心地はまさに涅槃の境地』Gentooか… 使ってるディストリビューションでその人の性格がだいたいわかるよね。
  • あの超オスもセパレート式キーボードを使ってるらしい(ErgoDoxじゃないけど)

    超オス。それは漫画、バキシリーズで登場する単語であり、常人離れした、規格外の体格を持った格闘家を指すときに使われる。そんな超オスがIT業界にも存在する。いや、あまりにも有名なので、恐らく業界人であればその名を知らぬ人は居ないだろう。そう、ウェブ魚拓の開発者、新沼大樹氏である。はっきり言って、IT業界で新沼氏を知らなかったらモグリだと言って差し支えない。それどころか、その名はIT業界だけで収まらず、アスリートたちの間でも広まっている。なんせ、握力日一である。CoCのNo.4(166kg相当)をコンスタントに閉じられるということなので、もしかすると世界一かも知れない。(参考:IRONMAN BLOG:新沼大樹氏、未公開写真、握力王 新沼大樹氏 テレビ出演 - YouTube) 実は、そんな新沼氏から衝撃の発言を聞いた。 「私もセパレート式のキーボードを使っています。」 ・・・ 〜〜〜〜〜〜〜

    あの超オスもセパレート式キーボードを使ってるらしい(ErgoDoxじゃないけど)
    stealthinu
    stealthinu 2016/02/01
    これは〜〜ッッ!! 奥野さんとお会いした時に実は、前にインタビュー記事で拝見した新沼氏のことを思い浮かべたんだけど、そのお2人が出会ってたとは!勇次郎とオリバが飲んでる図を連想してしまったw
  • 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におけるオプティマイザの改良点
    stealthinu
    stealthinu 2015/12/17
    MySQL5.7はだいぶ性能改善されてて速くなってるとのこと。@yoku0825氏が++されてるから近いうちに@yoku0826氏になる模様(嘘)
  • RDBにおけるキャッシュという考え方

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

    RDBにおけるキャッシュという考え方
    stealthinu
    stealthinu 2015/06/17
    『元の正規化したテーブルを残したまま、非正規化したデータを中間的なデータ、すなわちキャッシュとして新たに追加する』一時テーブル作成する方針お勧めなのか。バッチでやろうとするからいかんのだろうか…
  • 講演の予定等:dbtech showcase、software design 7月号、MyNA・JPUG合同DB勉強会 in 東京

    何だか6月は忙しくなってしまった。講演2回、雑誌での執筆1回がある。もし興味があれば講演を聞きに来たり雑誌を買ったりして頂きたい。 DB Tech Showcase 2015 Tokyoイベント概要ページ 今週、DB Tech Showcase 2015 TokyoでMySQL Clusterについて話す予定となっている。日程は最終日、17:30から。これからMySQL Clusterを使ってみたい!という人は、是非お越しを。 Software Design 7月号6月18日発売の、Software Design 7月号で新人向けの特別企画「スペシャリストになる方法」というコーナーで、ごくごく平凡な話を書かせて頂いた。ブログの読者にとっては何の驚きもない内容かも知れない。これからエンジニアを目指すぞ!!という人は、一読して頂きたいと思う。他にも多数のスペシャリストの方々が寄稿されているの

    講演の予定等:dbtech showcase、software design 7月号、MyNA・JPUG合同DB勉強会 in 東京
    stealthinu
    stealthinu 2015/06/09
    『孤軍奮闘して次々と立ちはだかる敵を関係理論で論破してなぎ倒し、一列に正座をさせて猛省を促し、リレーショナルモデル派へ改心させる』『NoSQL派の人も安心して参加して頂きたい』
  • 漢(オトコ)のコンピュータ道: InnoDBでCOUNT()を扱う際の注意事項あれこれ。

    InnoDBを使うとき、MyISAMと比較して度々やり玉に挙げられるポイントとして「COUNT()が遅い」というものがある。確かにInnoDBにおいて行数を弾き出すのにはテーブルスキャンが必要なのだが、そもそもMyISAMのCOUNT()が速い(テーブルの行数を保持してる)のが特殊なのであって、InnoDBが遅いわけではないのである。とはいえ、高速なCOUNT()については需要が多く、この問題には多くの人取り組んでおられるようだ。しかしながら、COUNT()のチューニングについては未だ語られていない点があるように見受けられるので、今日はCOUNT()のチューニングについて解説しようと思う。 COUNT(*)、COUNT(col)、COUNT(1)の違い基的なことではあるが、COUNT(*)とCOUNT(col)では意味が異なるため、異なる結果が返される場合がある。COUNT(*)はフェッ

    漢(オトコ)のコンピュータ道: InnoDBでCOUNT()を扱う際の注意事項あれこれ。
    stealthinu
    stealthinu 2014/04/24
    MySQL(のInnoDB)でcountを高速化するための方法。count(*)で良いのだがセカンダリインデックスを活用することで高速化出来るとのこと。
  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
    stealthinu
    stealthinu 2014/03/24
    EXPLAIN付けてクエリ実行するといろいろ最適化に必要な情報を出してくれる。その読み方について。
  • リレーショナルモデルのドメイン設計についての議論

    リレーショナルモデルを実践するには、ドメイン(≒データ型)を如何に正しく設計するかということが極めて重要になる。しかしながら、ドメインをどう設計すべきかという議論はあまりされていないように思う。その結果、ドメインについての理解はあまり進まず、データベース設計に失敗しているパターンが多いように思われる。 というわけで今日のテーマはドメインである。 集合を定義するリレーショナルモデルにおけるデータ型とは何か。リレーショナルモデルを実践するにはまずその点から理解する必要がある。 リレーショナルモデルでは、データ型はドメインと呼ばれる。ドメインとは、その属性(≒カラム)に入るべき値はどういったものかを集合として定義したものだ。言い換えると、属性値とはある集合の要素の一つであると言える。従って、ドメインを設計する際には、SQLで言うところのデータ型、つまりINTやCHARといったものだけでなく、その

    リレーショナルモデルのドメイン設計についての議論
    stealthinu
    stealthinu 2013/12/09
    「意味を持つID問題」では属性と番号を別カラムにして複合キーにしたほうが良いと。複合キーについて『複合キーはリレーショナルモデルでは必須の概念なので、抵抗を感じることなく使うべきである』とも
  • データベースアプリケーション開発を炎上させる負のスパイラル

    毎度おなじみ、はてブのホットエントリに「SIをダメにする負のスパイラル」というタイトルのまとめが掲載された。きしだ氏とはかなり視点は違うものの、開発現場の問題点については少し思うところがあるので意見を書いてみようと思う。と言っても、以下の話の内容はデータベースアプリケーションに限定した話であり、またSIerだけに限った話ではないのでその点はご容赦頂きたい。もちろんSIer各位の案件はデータベースは必須なので、エントリで触れる問題点には該当するだろう。 Q.なぜ炎上するのか? A.正しいデータベース設計ができていないから結論から言おう。データベースアプリケーションの開発が炎上するのは正しいデータベース設計ができていないからだ。ここでいう「正しい」とは、論理的に証明できる正しさという意味ではない。「来こうするべき」といった意味で捉えて欲しい。 「炎上」というのは、例えばテストが通らない、バ

    データベースアプリケーション開発を炎上させる負のスパイラル
    stealthinu
    stealthinu 2013/11/18
    『テーブルには正規化できるものと出来ないものがある』『正規化できるテーブルは集合の要素に重複がなく、順序がなく、NULLが含まれていない』『グラフや履歴(時系列)は集合では表現出来ない』
  • クッキーを1ゼタ枚以上焼いたけど質問ある?

    既にブームが過ぎ去った感があるが、クッキークリッカーというゲームが流行っているらしいと聞いたのが先月のこと。の虫のエントリを読んでからだった。それまでもTwitterのTL等でクッキークリッカーという単語は目にしていたのだが、全く興味もなかったので、「これってブラウザのクッキーをアレするイケナイゲームなんだろうか。物騒なもんが流行ってんなー」ぐらいにしか思っていなかった。ところが、江添氏があまりにも熱くクッキーについて語っているので、何となく興味が湧いてしまった。そしてブラウザのクッキーをアレするゲームではなく、単なるブラウザゲームであるということも理解した。江添氏の文章を見て思ったのは、「そんなにも面白いのか。」ということだった。 そんな折、友人がクッキークリッカーをやっているというのを知り、俺のハートにも火がついた。 「友人をぶち抜いてやる!」 ということでクッキークリッカーを始めた

    クッキーを1ゼタ枚以上焼いたけど質問ある?
    stealthinu
    stealthinu 2013/11/05
    久しぶりのクッキークリッカーネタ。しかし思っていた以上だった。そうか、ババアは罠なのか。
  • 開発スピードアクセル全開ぶっちぎり!日本よ、これがMySQL 5.6だッ!!

    米国で行われているMySQL Connectというイベントで、ついにMySQL 5.6 RC(リリース候補版)が発表された。リリース候補版ということは、これが次の正式版になるということだ。MySQL 5.5は5.1から凄まじい進化を遂げたバージョンであった。だが、MySQL 5.6はさらにそれを上回る進化を遂げている!正直ここまでの進化を誰が予想しただろうか、いや誰も出来なかったであろう。これまで、α版が出たときから何度か新機能について紹介してきたが、今回改めてMySQL 5.6の新機能を振り返ってみようと思う。すべてまとめるともの凄い内容だ。興奮して夜も眠れなくなること請け合いだ。MySQLの進化が止まるのでは?などという心配は吹き飛び、もはやもうちょっと小出しにしなくて良かったのか?と心配してしまうレベルである。 それではMySQL 5.6の新機能について紹介していこう。 InnoDB

    開発スピードアクセル全開ぶっちぎり!日本よ、これがMySQL 5.6だッ!!
    stealthinu
    stealthinu 2012/10/01
    このエントリー自体がすごく熱くて… なんかもう自分が使わないであろう機能でも、すげえっ!ってなるw
  • MySQL 5.5をわずか30秒足らずでコンパイルするためのテクニック

    べっ・・・別にソースコードなんて自分でコンパイルしないんだからねッ!!などと言わずにまず聞いていただきたい。30秒でMySQLのコンパイルが出来るというこの事実を。最近、細々とビルド時間の短縮に取り組んでいたのだが、正直ここまで爆速になるとは思わなかった。今日はビルド時間短縮のためのテクニックを紹介するので、是非皆さんも参考にして、快適ビルド生活を送って頂きたい!! 自己ベストは26.262秒マシンの状態や負荷の状況によって多少ビルドにかかる時間は前後してしまうのだが、これまでの自己ベストはなんと26.262秒。平均すると30秒ぐらい。以前は1分を切ることがなかったのだが、今ではなんとその半分でビルドが出来てしまう。これは純粋にmakeをするのにかかった時間であり、cmake(MySQL 5.5以降)やconfigure(MySQL 5.1以前)にかかる時間は除いてある。だがそれでも速い。

    MySQL 5.5をわずか30秒足らずでコンパイルするためのテクニック
    stealthinu
    stealthinu 2011/04/18
    こうやってちまちま高速化を施すことで2倍にもなるのか。しかしX切るとか夜寝る前にコンパイル掛けるとか、なんか20年近く前のワークステーション使ってた頃を思い出したわ…
  • "オープンソース"の名を冠したプロプライエタリな人向けのセミナーに参加した件

    先月中旬の話になるが、マイコミジャーナルで紹介されていた「事例に学ぶ オープンソース知財セミナー2010」というセミナーに参加してきた。(主催はオージス総研)サブタイトルは「オープンソースに潜む法的リスクとその対策のヒント」という謳い文句であり、オープンソース独特の法的リスクの話が聞けるかも知れないと思い申し込んだ。だが、結果は見事に裏切られた! ひとことで言うと、今回のセミナーはオープンソースのセミナーではなかった!というのが拙者の正直な感想である。あまりにも酷い内容だったと言って差し支えない。酷かったのは各々のプレゼンの質などではなく、その欺瞞に満ちたメッセージである。そのようなメッセージを放置すると、オープンソースに対する誤った知識が広まる恐れがあるので、エントリにて批判させて頂こうと思う。 キナ臭い基調講演基調講演はセミナーを主催したオージス総研の常務が行なった。滑り出しはオー

    "オープンソース"の名を冠したプロプライエタリな人向けのセミナーに参加した件
    stealthinu
    stealthinu 2010/12/02
    オープンソースのセミナーに見せかけてじつはプロプライエタリな開発にオープンソースを入れさせないためのセミナーと
  • エンジニアの楽園を見たッ!クリアコードさんの方々とお会いした話。

    先月、株式会社クリアコードの皆さんが俺が住む栃木県小山市にオフィスを構えられるということで、開設記念パーティーのために総出で小山へ来られた。東京をベース拠点とするクリアコードさんがなぜ小山に!?という疑問を胸に抱きつつ、普段ギークとの会話に餓えている俺は「このチャンスを逃すな!」と言わんばかりにTwitterで声をかけて、ノコノコと乗り込んでしまったのであった。 俺は、クリアコードさんのことはRuby会議2010でるりまサーチのセッションを聞いたときに初めて知った。その後、Xchat-RubyプラグインとGroongaを使ってIRCの履歴を全文検索出来るようにしたときにrroongaを使ったり、さらにSennaストレージエンジンの作者である池田(mir)氏が社長である須藤さんの技術力を絶賛していたこともあって、かなり興味を持っていた。今日は、そんなクリアコードさんの皆さんと会って伺った興味

    エンジニアの楽園を見たッ!クリアコードさんの方々とお会いした話。
    stealthinu
    stealthinu 2010/11/05
    クリアコードさんところの紹介記事だあ。うわー、社員の方々もすごい人らが集ってるのね。須藤さんすげえ。
  • 受託開発とGPL

    GPLに対する代表的な誤解・・・というかむしろ謎のひとつに、受託開発(SI)におけるライセンスの扱いがある。この点が明確になっていないため、受託開発において無意味にGPLを回避しようとしたり、GPLに対するFUDを流布することに対する原因になっていたりするように思う。フリーソフトウェアおよびオープンソースソフトウェアを愛する者として、そのような状況は断じて見過ごすことができない!!というわけで、今日はGPLを受託開発(SI)において用いる場合の注意事項を説明しよう。 GPLの使いどころ受託開発においてGPL(とその仲間たち=LGPL、AGPL)が登場するのは、第三者、つまり発注側でも受託側でもない者が作成したGPLのソフトウェアを利用する場合である。例えばGPLが適用されたライブラリなどだ。周知の通り、GPLのソフトウェアをリンクしたソフトウェアを再配布する場合は、そのソフトウェア全体に対

    受託開発とGPL
    stealthinu
    stealthinu 2010/06/03
    受託開発でGPL使う場合、受注元に対してのソース公開義務はあるが一般公開はしなくていい。うわ、誤解してた。情けない… あとAGPLはSaaSの場合でもユーザへソース公開義務ありのライセンスと。
  • 1