mysqlでcountの代替案

FOUND_ROWS()
selectを実行した際に取得した件数を返してくれる関数
InnoDBを使用している時はcountよりも早い


例、select hoge from hoge_table where hoge like '%県';
select found_rows();


例、limitを無視した件数を取得する場合
(データ取得時にSQL_CALC_FOUND_ROWSを加える)
select SQL_CALC_FOUND_ROWS hoge from hoge_table where hoge like '%県' limit 0,10;
select found_rows();


MySQLのSQL_CALC_FOUND_ROWS と FOUND_ROWS()

Windows XPで無効化してはいけないプロセス

DNS Client
DNS名の解決が行われ、その結果がキャッシュに保存されることで、IPアドレスだけでなく、標準名を用いた通信も可能にする。


無効化すると、
コンピュータによるIPアドレスの取得機能を抑止するということを意味し、ウェブ閲覧がほぼ不可能になる。


Network Connections
ネットワーク接続やダイヤルアップ接続を管理するとともに、ネットワークステータスの通知や、設定といった作業を行う。


無効化すると、
ネットワークの設定が行えなくなるということを意味し、新たなネットワーク接続を作成することができなくなり、ネットワーク情報を必要とするサービスも機能しなくなる。


Plug and Play
新しいハードウェアを検出し、該当コンピュータでそれを使用できるよう、自動的に設定を行うようにするもの。
Universal Plug and PlayUPnP)はWindows XPを搭載したコンピュータが新しいネットワークリソースを検出するために用いるものである。UPnPはたいていの場合不要であり、気兼ねなく無効化することができる。またその場合、UPnPと密接に連携するSSDP Discovery Serviceも無効化することができる。〜


無効化すると、
コンピュータが不安定になり、ハードウェアの変更を検出することができなくなる。


Print Spooler
システムにおけるすべての印刷アクティビティを管理するもの。


無効化すると、
ローカルPC上で印刷を行うことはできない。


Remote Procedure Call(RPC)
プロセスを他のプロセスと、そしてネットワークを介して互いに通信を行うよう管理しているもの。


無効化すると、
システムが起動しなくなる。


Workstation
Microsoft Networkサービスによって検出されたリソースとの接続および通信を可能にするもの。


無効化すると、
コンピュータはリモートのMicrosoft Networkリソースに接続することができなくなる。


Network Location Awareness(NLA
ネットワークの設定情報や位置情報を収集、保存し、そういった情報が変更された際にアプリケーションに通知する責任を負っている。


無効化すると、
無線ネットワークの接続機能および利用機能が正しく動作しなくなる。


DHCP Client
コンピュータのネットワーク接続を簡単に行えるようにするサービスである。


無効化すると、
ネットワーク上にあるWindows XPシステムそれぞれに対して手動で静的なIPアドレスを設定しなければならなくなる。また、WINS情報を始めとするその他のパラメータの設定にDHCPを用いていた場合、その情報も手動で設定しなければならなくなる。


Cryptographic Services
更新自動プログラムに使用するAutomatic Updates
Windowsファイルの署名を確認するCatalog Database Service
信頼されたルート証明機関の証明書を追加/削除するProtected Root Service
証明書の取得を支援するKey Service
Task Managerの一部の機能


無効化すると、
Automatic Updatesが機能しなくなるうえに、Task Managerだけではなく他のセキュリティメカニズムにまつわる問題も発生する


Automatic Updates
更新自動プログラムに使用する


無効化すると、
セキュリティ更新が新たにリリースされても自動的にインストールされなくなってしまう。


Windows XPで無効化してはならないサービス10

複数の問題に対する取り組み方

リーダの仕事


リーダーたる人間は、全く別々に発生した、一見別物のように見えるトラブルや問題の本質を見抜き、それが発生している本当の原因を取り除く使命を持っています。


学生にありがちなこと


出された問題をテストだと思ってしまう。だからテストとして処理する。
テストとして処理するとき、解けない設問に思考時間を掛けるのは無駄です。
だから、難しそうな問題、答えの出なそうな問題は飛ばしてしまう。


実際の世の中の仕事というのは、そうではありません。
法律を盾にほぼ無尽蔵に税金を徴収できる公務員ならいざ知らず、ビジネスの現場では、問題を先送りしても、リスクは飛躍的に高まるだけです。


リーダと学生の違い


そして、最終的に及第点を採れば良いテストと異なり、リーダー、責任者たる人は先送りした問題にも全て答え、責任を持たなければなりません。
答えを出さなくても合格できるテストとは、そこが違うのです。


リーダの問題の取り組み方


個別の問題の解決など最初から諦めてしまいます。
複数の設問があったら、まずそのなかでもっとも効果的な問題を見つけ出します。
それが最も難しい問題であったとしても、最も効果的な問題なら、それを解決しようと考えます。つまり、他の問題を無視して、その問題に最も長い時間を掛けるのです。
こうすると、全ての問題を解決することができないのは当然ですが、最も効果的な結果を引き出すことができます。


まとめ


ビジネス上で発生する問題の場合、たいてい重要なのは、発生した問題を解決することよりも、(諦めることも含めた)解決策について周囲に納得してもらうことです。
そのための説明、プレゼンテーションがうまくないと、誰も説得することができません。
自分がどのようにしてその結論に至ったか、そのプロセスが解るようになっていさえすればいいのです。


たくさんある問題のなかから、自分がどれが最も重要な問題だと考え、それを解決するために複数の方法があるなかで、なぜその方法を選択しようと思ったのか、そのプロセスが解れば、少なくとも状況は変化します。


要領よく問題解決をするための方法論

network(コマンドの使い方)

last -a
[ログイン履歴の表示]


whois (ドメイン名)
[ドメインの管理者、そのドメインの名前解決に使用されるネームサーバ、有効期限の確認]


dig @(問い合わせ先ネームサーバ) (確認したいドメイン) any
[ネームサーバに対して問い合わせを行い、その応答結果を表示するコマンド]
名前解決がちゃんとできているか確認したり、ネームサーバの設定を確認する
anyをつけると、メール、ネームサーバ等の情報がまとめてわかります。


netstat -an
[ネットワーク全体の接続情報の確認]

  • eで詳細情報が、-aで接続待ち受けしている情報,
  • rをつけるとrouteコマンドと同様、ルーティングテーブルが確認できます。
  • pnl:あいてるポートの確認

LISTEN:外部からの接続待ち受け ESTABLISHED:現在有効な接続


ps -ef
[ポートを見張っているプロセスの表示]


nmap
[標的にしたホストが開いているポートを調べるためのツール]


ping -s 32000 www.hoge.jp
[32kのping]


traceroute(tracert)
[ネットワークの経路を調査する]


nslookup
[DNSサーバに名前解決の問い合わせを行う]


tcpdump
[ネットワーク上に流れるパケットをモニタリングする。]


知っておくと役立つかもしれないLinuxコマンド(サーバ確認関係)
tcpdumpコマンド

時を巻き戻せない理由

エントロピー[物質や熱の拡散の程度を表すパラメーター]をわずかに増大させるような何かを行なうとする[部屋を散らかすという意味]。そして観察者は、その行為の結果を観察し、それにより生じたエントロピーの増大を記録する


エントロピーを元の低い値に戻せる一連の手順を選択できるとする。ただしそうするには、自分の行為を元に戻すだけでなく、すべての相関系を元に戻す必要がある。つまり、起こった出来事とそれを記録したことに関する観察者の記憶も消し去らなければならないわけだ。観察者が記録を紙に書きとめていたのなら、それも消して白紙に戻さなければならない。しかし、このように作業を続けていけば、最終的にはその出来事が実際に起こったという記録はどこにも存在しなくなるはずだ。


不可逆性の原因


要するに、エントロピーを減少させる出来事は起こり得るが、それを「系の中から観察する」のは不可能というわけだ。この理屈を、おそらくは1つの閉鎖系であるはずの宇宙全体に当てはめることもできる。宇宙全体のエントロピーを減少させることは可能であっても、われわれはその系の中にいるため、そのような出来事を自ら観察することはけっしてできない、というのだ。


時間


時間が1つの方向に流れることは、記録が保存され、出来事が観察されることを可能にする。しかし、流れる方向が逆になると観察することはできない。したがって、時間は2つの方向のどちらにも流れ得るが、あらゆる観察者にとって、時間を経験するということは、時間が未来へ向かって流れている場合にのみ可能となるのだ。


時はなぜ一方向なのか:観察者問題から説明

mysqlでのqueryのチューニング

Ⅰ、権限の簡易化


 テーブルの権限が複雑になればなるほど、オーバーヘッドが大きくなります。GRANT文で設定された権限が単純であれば、クライアントがSQLを実行したときのオーバーヘッドが少なくなります。


Ⅱ、MySQL関数をBENCHMARK関数でテストする


特定のMySQL関数などが問題になっている可能性がある場合、BENCHMARK関数を使用してmysqlクライアントから実行時間を調べることができます。実際にこのBENCHMARKが有用となるのは、複雑な関数を実行したりしている場合のオーバーヘッドを調べるときなどが考えられます。
BENCHMARK関数


Ⅲ、WHERE句の最適化


・不要な括弧「()」は除く
・単一のテーブルにWHERE句なしのCOUNT(*)を実行すると、MyISAMとMEMORYテーブルではテーブル情報から直接取得することができます。また、テーブル1つのみで使用する場合はすべてのNOT NULL式でも実行されます。
SQL_SMALL_RESULTオプションを使用すると、MySQLはメモリ内のテンプテーブルを使用します。
WHERE句の最適化


Ⅳ、OPTIMIZE TABLEの実行


テーブルをデフラグします。大量のデータを削除した場合などに実行すると効果があるでしょう。


Ⅴ、可変長カラム型


頻繁に更新されるMyISAMテーブルでは、可変長カラム型(VARCHAR, BLOG, TEXT)は使用するべきではありません。
可変長カラム型を使用した動的テーブル


Ⅵ、INSERT DELAYED構文


INSERT DELAYED構文はデータの書き込み終了を検知する必要がない場合に使用します。そうすることで、一度のディスク書き込みで多くの行を書き込むことができるので、インサートのオーバーヘッドを少なくすることができます。

MyISAMでは同時SELECTと同時INSERTが可能であるため、MyISAMでは使用する必要はほとんどないとのことです。〜


Ⅶ、優先度の指定


・INSERT LOW_PRIORITY構文を使用すると、INSERT文の優先度が下がり、相対的に他のSELECT文の優先されるようになります。
・SELECT HIGH_PRIORITY構文を使用すると、キューに優先度が指定されていないSQL文があっても、先にそのSELECT文が実行されます


Ⅷ、複数行の同時インサート


複数行を同時にINSERTする方が、複数回のINSERT文を実行するよりも効率が高くなります。


Ⅸ、データ型の同期


同じ情報を扱うカラムが複数のテーブルにある場合、同じ名前、同じ型にする。


DBの構築について
DBのチューニング


MySQLのクエリを最適化する10のTips

アメリカの著作権

著作権の誕生


17世紀以降の北米植民地では、イギリスのような出版者ギルドこそ無かったものの、出版業界が発達してくる。その多くはイギリス人著作物の海賊版であり、著作者の保護というものは全く考えられていなかった。そうした中で、書籍出版による利益が出版者に貪られ、アメリカ人著作者には雀の涙のような原稿料しか入らない、という状況が大きくなっていき、やがて植民地政府に対し「著作者の保護」を訴える動きが出てくる。
このような経緯の結果、アメリカでは「圧制者の搾取に対して民衆が自分の財産権を主張する」という視点から著作権が捉えられるようになった。著作権とそこから得られるはずの利益を自然な財産権と見なす考え方である。そしてアメリカ独立宣言からさして間を置かない1790年、まだ独立戦争も終わっていないうちに、最初の著作権法 が連邦法として制定された。多くの部分でイギリスのアン法をそのまま踏襲しているが、イギリス法的な産業振興策の側面よりも自然権保護の観点を強く持つと考えられている。.


アメリカの背景


アメリカ人がこのような「自然権としての財産権」との考え方にいたった背景には、「早い者勝ちでフロンティアを切り取って行く」というアメリカ開拓の歴史が大きな役割を果たしたと考えている。島国イギリスはゼロサム性が強く、誰かが土地を独占すれば他の人が追い出されるのが当然だった(エンクロージャなど)。しかし開拓初期のアメリカには無限とも思える無人の(つまり先住民だけが住んでいる)土地があり、1人の開拓者が一定範囲の土地を独占しても他にいくらでも土地がある(つまり先住民から収奪すればいい)という状況だった。やがて高利益率の土地は囲いつくされたが、このアメリカ人のメンタリティは変わっておらず、土地以外に早い者勝ちで独占できるようなフロンティアが必要とされている。Second Life のようなサービスが生まれれば皆が飛びつくわけである。アメリカ人は、著作権もフロンティアの一種だと見なしている。想像力さえあればいくらでも新しいものを生み出すことが可能で、それを早い者勝ちで切り取って行く、という考え方が、アメリカ人のメンタリティと良くマッチするのだ。


近年の動き


近年の Google Book Search の動きだが、これを「著作権制度への挑戦」と見る向きが巷では多い。確かに既存の著作権制度と正面からぶつかる動きであることは確かである。しかし同時に、上述した「早いもの勝ちでフロンティアを切り取っていく」という考え方、アメリカ的著作権制度の源流に流れるいかにもアメリカ的思想を、この Google Book Search こそが実にストレートな形で継承していると考える。
このため、Google著作権者との対立も、確かに正面からぶつかってはいるが、底流では両者に共通したものがあり、結局のところ「どちらが強いか」という西部開拓時代的な部分で決着されることになり、現時点ではそれが和解条件という形でひとまず落ち着いている。


日本の場合


一方、アメリカ以外の国ではいささか事情が異なる。特に、ゼロサム性の高い島国であるにも関わらず著作権の扱いについてはアメリカ式の財産権的考え方の影響を強く受けている国、不平等条約撤廃のために迂闊にベルヌ条約に加盟してしまった上にプラーゲ対策で作られた著作権仲介業者がそのまま既得権益を拡大するという泥縄式に制度が出来上がってしまった国、つまり日本のことなのだが、そこでは全く異なる事情が存在する。
日本には「早い者勝ちでフロンティアを切り取って行く」という動的な思想は無い。財産権としての著作権は静的なものと受け止められており、静的な社会秩序の中に位置づけられている。Google Book Search のような動きは、新しいフロンティアを切り取るものとは認識されず、静的な秩序を乱すものだと捉えられ、被害者意識に凝り固まった怨嗟の声 が上がることになる。


著作権とフロンティア