タグ

2009年3月30日のブックマーク (12件)

  • なぜMySQLのサブクエリは遅いのか。

    よくMySQLはサブクエリが弱いと言われるが、これは当だろうか?半分は当で半分は嘘である。MySQLのサブクエリだってなんでもかんでも遅いわけではない。落とし穴をしっかり避け、使いどころを間違えなければサブクエリも高速に実行できるのである。今日はMySQLがどんな風にサブクエリを実行し、どのような場合に遅いのかということについて説明しよう。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリのカラムを参照しているサブクエリのことである。そし

    なぜMySQLのサブクエリは遅いのか。
    kamipo
    kamipo 2009/03/30
    MySQLは内部的にINを直接処理することができないので、EXISTSに変換することでSQL的には相関のないサブクエリも相関サブクエリになってしまうのである。
  • SICP関数型言語の勉強に「計算機プログラムの構造と解釈」を読もう - ひげぽん OSとか作っちゃうかMona-

    計算機プログラムの構造と解釈posted with amazlet on 06.04.15 Gerald Jay Sussman Julie Sussman Harold Abelson 和田 英一 ピアソンエデュケーション (2000/02) 売り上げランキング: 56,404 Amazon.co.jp で詳細を見る 自分が「計算機プログラムの構造と解釈」というを勉強していった過程をまとめています。 この質は、翻訳の悪さでも難しい数学でもないです。 なんと伝えたらよいのだろうか。 全部読み終えたときにまとめたいと思います。 →読み終わったのでまとめました。「「計算機プログラムの構造と解釈(SICP)」を読み終えて」 読み終えたら次のステップとしてはOn Lispなどがおすすめです。 目次 関数型言語の勉強にSICPを読もう - (1) SICPを読み始めた理由 関数型言語の勉強に

    SICP関数型言語の勉強に「計算機プログラムの構造と解釈」を読もう - ひげぽん OSとか作っちゃうかMona-
    kamipo
    kamipo 2009/03/30
  • 良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog

    Java並行処理プログラミングを読み終えた。ここ 1 年に読んだ技術書の中でダントツのベスト。(2位はWorking Effectively With Legacy Code) 「Javaだから関係ない」と思った人にこそ読んで欲しい。僕もここ数年 Java のコードなど一切書いていないが、このを読んで得たものは非常に大きかった。 このでは マルチスレッドプログラミングにおける問題と背景、その対処方法 Java が提供している API の設計と実装 を解説している。分かりやすさとレベルの高さを兼ね備えたとても良い。翻訳も最高。 僕はこのを読んで、Java の並行処理プログラミングは、想像を遙かに超えて進化している事に驚きを隠せなかった。何回も twitterJava すげーと叫んだ。 これを読んでしまうと、最近僕が熱心な Scheme も含めて、自分の身の回りにあるプログ

    良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog
  • array_filter と create_function でクイックソート - sotarokのお勉強

    まーPHP 5.2.x 系以前でこういうことやろうとすると当然create_functionなどというひどいものを使わないといけなかったり。つーか、配列の結合が、+ と array_merge のどっちつかうかは何年PHPつかってても身に付かんな。添字配列と連想配列が一緒くたに扱われるPHPだからまあしかたないといえばしかたないんだけど。 <?php function qsort(Array $list) { if (count($list) == 0) { return array(); } $pivot = array_shift($list); return array_merge(qsort(array_filter($list, create_function('$x', 'return ($x < ' . $pivot . ');'))) , array($pivot) , q

    array_filter と create_function でクイックソート - sotarokのお勉強
  • PHP 配列の + 演算子が便利な件 - yoya's diary

    配列(array)変数を連結する関数として、 array_merge と array_merge_recursive の2つが有名ですが、 + 演算子も使える事が意外と知られていないような気がするので自分へのメモを兼ねつつ紹介。 実験コード $a = array('goo1' => 'goo1', 'goo2' => array('goo2-1', 'goo2-2')); $b = array('goo1' => 'foo1', 'goo2' => array('foo2-1', 'foo2-2')); echo "# array_merge\n"; var_dump(array_merge($a, $b)); echo "# array_merge_recursive\n"; var_dump(array_merge_recursive($a, $b)); echo "# array +

    PHP 配列の + 演算子が便利な件 - yoya's diary
    kamipo
    kamipo 2009/03/30
  • パイプライン処理 - Wikipedia

    この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2024年2月) 脚注による出典や参考文献の参照が不十分です。脚注を追加してください。(2024年2月) 出典検索?: "パイプライン処理" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL パイプライン処理(パイプラインしょり、英: pipeline processing)とは、コンピュータ等において、処理要素を直列に連結し、ある要素の出力が次の要素の入力となるようにして、並行(必ずしも並列とは限らない)に処理させるという利用技術である。要素間になんらかのバッファを置くことが多い。レイテンシの向上よりも、単位時間あたりの処理量(スループット)の

    kamipo
    kamipo 2009/03/30
    パイプラインハザード
  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 5.1.10 サーバーステータス変数

    MySQL サーバーは、その操作に関する情報を提供する多くのステータス変数を保持します。 これらの変数およびその値は、SHOW [GLOBAL | SESSION] STATUS ステートメントを使用して表示できます (セクション13.7.7.37「SHOW STATUS ステートメント」を参照してください)。 オプションの GLOBAL キーワードはすべての接続にわたって値を集計し、SESSION は現在の接続についての値を表示します。 mysql> SHOW GLOBAL STATUS; +-----------------------------------+------------+ | Variable_name | Value | +-----------------------------------+------------+ | Aborted_clients | 0 |

  • ドメインの移管 | バリュードメイン ユーザーガイド

    ドメイン移管とは、ドメイン登録事業者のサービスや価格が不満であったり、別のドメイン登録事業者が提供しているサービスを受けたい場合に、ドメインの管理を別のドメイン管理会社に変更することです。 汎用・都道府県型JP・属性型JPドメインの移管方法 汎用・都道府県型JPドメインの指定業者変更、ドメイン移転について 属性型JPドメインの指定業者変更について 弊社へドメイン移管を行う際、移管手数料として1ドメイン毎に1年分の更新料金が発生し、移管完了と同時にドメインの有効期限の延長が1年行われます。 ドメイン移管手数料は、ドメインの種類や移管先レジストラ※により異なります。移管可能なドメインの費用をご確認ください。 ※移管先レジストラはドメインの登録申請を受付ける業者で、GMO・eNom・KeySystemsの3社です。 ドメインの移管時の注意事項 ドメインの移管には、ドメインの認証鍵(Auth-Co

    ドメインの移管 | バリュードメイン ユーザーガイド
  • それ行けLinux~Apacheとmod_sslを使う~

    今回、SSL通信を試したいと思い、Apache2にmod_sslを導入することにしました。 Apache2ではmod_sslが組み込まれているので、別途インストールする必要はないのですが、Apache2のコンパイルを行う際に、SSLを使用することを指定しておかなければなりません。 私のサーバーにもApache2はインストールされていますが、SSLを利用するためのオプションはつけずにコンパイルしていた為、再コンパイルする必要がありました。どうせコンパイルからするなら最新を使おうということで、2.0.47を使います。 現在のApache2にmod_sslが組み込まれているか確認したい場合は、以下のように行います。 mod_ssl.cが一覧になければ組み込まれていません、再コンパイルが必要になります。 [root conf]# /usr/local/apache2/bin/httpd -l Co

  • OpenSSLのインストールとキーペアの生成

    OpenSSLはフリーのSSL実装で、mod_sslやApache-SSL、あるいはOpenSSHなどで必要になります。ApacheでSSLを使いたい場合は、OpenSSLのほかに、mod_sslまたはApache-SSLを導入する必要があります。 Apache 1.3.20 + mod_ssl 2.8.4インストールメモ Apache 1.3.6 + SSL 1.3.2 (Apache-SSL)インストールメモ INSTALLの手順通りコンパイルします。 $ tar xvfz openssl-0.9.6b.tar.gz $ cd openssl-0.9.6b $ ./config $ make $ make test rootになってインストールします。 $ su # make install 鍵の作成とサイト証明書の発行 パスフレーズで保護された秘密鍵を生成します。 $ su # cd

    OpenSSLのインストールとキーペアの生成
  • Webサーバー間通信内容暗号化(Apache+mod_SSL) - Fedoraで自宅サーバー構築

    ユーザ名やパスワード等の機密情報をWebブラウザから入力する場合、盗聴される恐れがあるため、Webサーバー間の通信内容を暗号化する。 ここでは、Webサーバーにmod_sslを導入して、URLをhttp://~ではなく、https://~でアクセスすることによって、Webサーバー間の通信内容を暗号化するようにする。 [root@fedora ~]# cd /etc/pki/tls/certs/ ← ディレクトリ移動※FC4~F15の場合 [root@fedora ~]# cd /usr/share/ssl/certs ← ディレクトリ移動※FC1~FC3の場合 [root@fedora certs]# sed -i 's/365/3650/g' Makefile ← サーバー証明書有効期限を1年から10年に変更 [root@fedora certs]# make server.crt ← 

  • http://memoja.com/