タグ

2013年6月21日のブックマーク (8件)

  • コマンドによるMySQL管理テクニック

    mysqladminの基操作 データベースの作成 前回は、既存のtestデータベースを使って操作を解説しました。肝心のデータベース作成の手順については、まだお話ししていませんでした。 データベースの作成/削除やMySQLサーバの再起動/停止といった重要な作業は“mysqladmin”コマンドで行います。このmysqladminコマンドを使えるのは、許されたユーザーだけに限られます。試しに、一般ユーザーでMySQLサーバの権限参照定義を再読み込みさせてみましょう。

    コマンドによるMySQL管理テクニック
    teddy-g
    teddy-g 2013/06/21
    MySQLの基礎の基礎。ユーザーの作り方から丁寧な説明あり。
  • ダイクストラ法(最短経路問題)

    ダイクストラ法 (Dijkstra's Algorithm) は最短経路問題を効率的に解くグラフ理論におけるアルゴリズムです。 スタートノードからゴールノードまでの最短距離とその経路を求めることができます。 アルゴリズム 以下のグラフを例にダイクストラのアルゴリズムを解説します。 円がノード,線がエッジで,sがスタートノード,gがゴールノードを表しています。 エッジの近くに書かれている数字はそのエッジを通るのに必要なコスト(たいてい距離または時間)です。 ここではエッジに向きが存在しない(=どちらからでも通れる)無向グラフだとして扱っていますが, ダイクストラ法の場合はそれほど無向グラフと有向グラフを区別して考える必要はありません。 ダイクストラ法はDP(動的計画法)的なアルゴリズムです。 つまり,「手近で明らかなことから順次確定していき,その確定した情報をもとにさらに遠くまで確定していく

    teddy-g
    teddy-g 2013/06/21
    ダイクストラアルゴリズムをC++で実装。C++使わんので参考まで。
  • MySQLの超遅いSELECTが劇的に早くなった | X->A->O

    CakePHPはよく触っていたものの、MySQLについてあまり知らなかったんですが、大規模なデータベースを扱ってみようと思い立ちいろいろ試行錯誤しています。 で、ついさっき感動したのが、40万件のレコードを扱ってるテーブルに簡単なSELECT分を投げて返ってくる時間がなんと5秒もかかっていて、なんじゃこりゃ?って首をかしげてたんですが、INDEXひとつで劇的に早くなったこと。 40万件が大規模かそうでないかはこの際おいておいて、INDEXのつけ方次第でこんなにも速度に変化があるのかと涙が出そうになった。 最初の激遅いテーブルは簡単に書くとこんな具合。 CREATE TABLE IF NOT EXISTS `shops` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `status

    teddy-g
    teddy-g 2013/06/21
    インデックス作成するときにはWHERE句と同じ順番にしないと意味がない。インデックスは1テーブルに就き1個だから重要。
  • MySQLでBLOB/TEXT型カラムにインデックスを張る | dTblog | デザインとプログラムの境界をさまようブログ

    MySQL で新たにテーブルを作ったり、プライマリキー、ユニーク制約、またはインデックスを作成する際、下記のようなエラーが発生することがあります。 ERROR 1170 (42000): BLOB/TEXT column 'text_field' used in key specification without a key length 結論として回避策から書くと、BLOB型またはTEXT型の場合は、インデックス作成時にキー長を明示してあげる必要があります。 create index new_index on table_name(text_field(100)); このエラーは、MySQLBLOB型もしくはTEXT型 (これらに順ずる TINYTEXT型 や LONGTEXT型を含む)のような可変長カラムでは、その先頭から最大255文字分しかインデックスできないという制約から来て

    teddy-g
    teddy-g 2013/06/21
    BLOB/TEXT型にインデックス張る場合はキー長を()で設定すると。
  • インデックスの作成・削除・情報表示・追加|インデックス:データ定義(SQL文)|MySQL|PHP & JavaScript Room

    CREATE TABLE テーブル名(カラム名 型,カラム名 型, ... INDEX(カラム名); または CREATE INDEX インデックス名 ON テーブル名(カラム名); または ALTER TABLE テーブル名 ADD INDEX インデックス名(カラム名); 検索するデータ量が多い場合など、検索対象のカラムにインデックスを作成しておきましょう。 インデックスを作成しないと、検索対象のカラムのデータを全部検索するため、データベースに負担がかかりすぎ落ちることもあります。 インデックスを作成しておけば、カラムに設定されたインデックスを検索するので、データベースの負担も軽減し、なおかつ検索効率がアップします。 主キーを設定したカラム名には、自動的にインデックスが作成されますので、あえて作成する必要はありません。 データベース作成時のCREATE TABLE文でインデックス作成

    インデックスの作成・削除・情報表示・追加|インデックス:データ定義(SQL文)|MySQL|PHP & JavaScript Room
    teddy-g
    teddy-g 2013/06/21
    インデックス作成したら死ぬほど速くなった。
  • Googleマップをイラストマップみたいにしたい。

    サイト制作において、アクセスマップなどの地図の表示はどうしてますか?「Google Maps API」を利用したり、ちょっとデザインにこだわりたい時にはイラストに描き起こしたりしてるんじゃないでしょうか。 今回は、Google マップをちょいとカスタマイズすれば、まるでイラストマップみたいに見せることができるんだぜ!というお話です。 記事中に出てくる画像は2012.3現在のもののため、現在のGoogle Maps APIでの表示とは異なりますので注意です…X(。 リンク切れしていたところを、なるべく近い内容の存在するページにリンクし直しました(2015.7.20追記)。 まずはしっかり抑えておきたい「Google Maps APIの基」から。 基をすっ飛ばして早速カスタマイズしたい方はこちら↓。 Google Maps APIの基 Google マップはGoogle API キーを発

    Googleマップをイラストマップみたいにしたい。
    teddy-g
    teddy-g 2013/06/21
    Google Mapsをイラストっぽくカスタマイズ。手がかかる。
  • http://www.rider-n.sakura.ne.jp/regexp/regexp.php

    teddy-g
    teddy-g 2013/06/21
    PHPの正規表現をリアルタイムで評価できる。便利。
  • 悪さをしている機器を探し出す -- No.3 MACアドレスから機器のメーカーを調べる

    ここまでで,機器のMACアドレスが特定できた。次は,このMACアドレスから機器の製造メーカーを調べる作業だ。 MACアドレスの前半でメーカー特定 MACアドレスは全部で48ビットの長さで,LANボードのROM(ロム)などに焼き込まれており,機器ごとに異なる番号が割り振られている。これを通常は16進数で表記する。すると,0~9とA~Fの16文字を使って12桁で表される。 実はこのMACアドレスには,機器メーカー(ベンダー)を特定することができる情報が含まれている。MACアドレスの前半部分の6文字(24ビット分)は,MACアドレスを一元管理しているIEEE(アイトリプルイー)が機器メーカーごとに個別に割り当てているからだ(図3)。つまり,MACアドレスの前半6文字がわかれば,機器メーカーを特定できる。 図3●MACアドレスの前半24ビットで機器メーカーが特定できる MACアドレスの前半24ビッ

    悪さをしている機器を探し出す -- No.3 MACアドレスから機器のメーカーを調べる
    teddy-g
    teddy-g 2013/06/21
    MACアドレスからメーカーを調べる