タグ

mysqlに関するzerihik0のブックマーク (23)

  • はじめての MySQL で100万件のデータを管理する時に行ったチューニングまとめ

    MySQL の勉強をせずにフレームワーク等で SQL を書かずに Web サイトを構築していました。データ数も2万件程度でしたので、そこまで困ることはありませんでしたが、今回100万弱の商品データを扱う機会ができたので、MySQL のチューニングや発行する SQL について見直す機会がありました。 この記事では MySQL を高速化するのに行った対策など勉強したものを自分用にメモしておきました。 条件式で比較するカラムにインデックスを使用して高速化 商品コードで存在しない商品を見つけて、商品をDBに登録するという処理を行っている場合、4万件超えたころから処理に2秒以上かかるようになってきます。12万件超えた頃には10秒程度かかるようになってしまいましたが、商品コードのフィールドに対してカラムインデックスを貼ることで0.2秒に短縮することができました。 MySQL のリファレンスにも以下のよ

  • phpMyAdminクローラーの恐怖:phpspot開発日誌

    サーバを立てているとログに怪しいアクセスが出るのは日常的なことですが、とあるサーバにphpMyAdminクローラーの恐怖のログが残っていたのでシェアします。 Apacheのログを見ていたら下記のようなログを見つけました。 /path/to/www/ は apache のDocumentRoot です。 phpMyAdminを使っている方で、レンタルサーバ等を使っている場合、public_html 以下等に設置しているかと思いますが、クローラーは片っ端から存在しそうなパスを総当りしてきます。 URLが存在すれば200ステータスで検知してそこにphpMyAdminがあるみたいなことが分かってしまいます。(phpMyAdminだけ狙っているようでもなさそうですが) 仮に、MySQLのパスワードを設定していない人がいた場合はrootでDBを消されたり、データを盗まれたりする危険性があったのでシェア

  • 「優れたMySQL DBAを見分ける27+3の質問」に対する回答例

    随分と更新が空いてしまったが、「優れたMySQL DBAを見分ける27+3の質問」に対する回答例(漢バージョン)を紹介しよう。実は質問を掲載した際「難しい!」というコメントが非常に多く、もう少し易しい質問にするべきだったかと思って次のように呟いてみたのだが・・・ 非常に心強くて安心した。さすがに日を代表するMySQLのエキスパートである。出題のレベルは間違ってはいなかった!! そんなわけで、回答の方に移ろう。 MySQLのサーバープロセスはいくつある?ひとつ。mysqldはシングルプロセス・マルチスレッドモデルを採用しているので、"サーバー"プロセスはひとつである。多くの場合、Linuxなどでmysqldを動かす場合には、お供にmysqld_safeも常に動いていることが多いが、mysqld_safeはサーバーではなく、mysqldのためのラッパーであるので数には含めない。 rootユー

    「優れたMySQL DBAを見分ける27+3の質問」に対する回答例
  • http://japan.internet.com/developer/20071023/26.html

  • PHPで実用アプリケーションを作ろう(前編)

    PHPで実用アプリケーションを作ろう(前編):快速MySQLでデータベースアプリ!(5)(1/2 ページ) PHPMySQLとの親和性が高いスクリプト言語の1つだ。今回はこのPHPを利用して、実用に耐えるアプリケーションを作成しよう。前編では、その基礎となるPHPのインストールや、PHPMySQLを操作する方法を紹介する。 PHPMySQL PHP(Personal Home Page tool)は、Webアプリケーションを作成する手段としてここ数年で広く使用されるようになってきました。Rasmus Lerdor氏が書いたPerlスクリプトから始まったPHPは、データベースとの連携を実現するFI(Form Interpreter)と統合され、PHP/FIとなったあたりから国内でも多く実例を見るようになりました。 国内でPHP/FIが利用されるようになる一方、海外では有志の手によりPH

    PHPで実用アプリケーションを作ろう(前編)
  • ソーシャルゲーム開発者なら知っておきたい MySQL INDEX + EXPLAIN入門|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

    ソーシャルゲーム開発者なら知っておきたい MySQL INDEX + EXPLAIN入門 広く浅くを担当してます、ota です。 技術ブログ第一回から早速流用スライドで申し訳ありませんが、社内勉強会資料として作成した「MySQL INDEX + EXPLAIN入門」です。 当社でもソーシャルゲームの開発を行っていますが、このような大量のデータを使用する・クエリの速度が求められる場合にインデックスは大変重要です。 インデックスの有効な利用にはDB設計者だけではなくプログラマにもある程度の知識が最低限必要となりますが、インデックスについての初心者向け資料があまりないようです。 このスライドではプログラマに知っておいて欲しい以下の基的な点をまとめました。 INDEXを使用する時に気をつけること WHERE句 !=、<>はインデックスが使用できない WHERE句の全てのANDにかかっていないイン

    ソーシャルゲーム開発者なら知っておきたい MySQL INDEX + EXPLAIN入門|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
  • クラウドに最適化したMySQLのフォーク「Drizzle」が正式版公開

    MySQLからフォークし、クラウド用途に最適化して開発された「Drizzle」が3月15日に最初の正式版を公開しました。 MySQLはよく知られたオープンソースのリレーショナルデータベースです。そのMySQLを、トランザクション機能を維持したままクラウドのような大規模分散環境での並列処理とマルチコアCPUに最適化したのが「Drizzle」です。 多くのWebサービスのバックエンドでは、高速なデータベース処理を実現するために多数のMySQLサーバを用いた分散処理をしていますが、Drizzleではそうした用途に特化して設計されています。 NoSQLに対するSQLからの回答 Drizzleは、大規模なWebサービスのバックエンドデータベースとして利用することを想定しているため、Web系サービスのバックエンドとしてはほとんど使われないだろう機能が省かれています。例えば、ACL(アクセス制御リスト)

    クラウドに最適化したMySQLのフォーク「Drizzle」が正式版公開
  • MySQLやPHPのパフォーマンスを向上させる方法のメモ。 » とりあえず9JP

    MySQLPHPのパフォーマンスを向上させる方法のメモ。 色々な設定があるとは思いますが、ここでは個人的に効果を顕著に感じたMySQLのクエリキャッシュとAPCについて書いています。 当はPHPやらMySQLそれぞれでベンチ取った方が良いとは思うのですが、この記事では、WordPressを設置して、そのインデックスページに対するApacheBenchのRequests per second(一秒間に処理されたリクエスト数)のみを見て、その結果で比較しています。 ※ApacheBenchはローカルではなく外部のサーバからという微妙な環境で、リクエスト数100、同時リクエスト数10、試行回数はそれぞれ1回という微妙な値でやってます。 まずは、全く未設定な状態での、Requests per second。 実行したコマンドは以下。 ab -n 100 -c 10 テストしたいURI Requ

  • ソーシャルゲームのためのMySQL入門その2 | BLOG - DeNA Engineering

    こんにちはこんにちは。11インチMacBook Airが欲しくてたまらないiwanagaです。 前回の記事 が幸いにもご好評を頂けた様で非常にうれしいです。嬉しくなって、ついがんばって第2弾を書いてしまいました。引き続き、ソーシャルゲームでよく使われるテーブルタイプ毎にちょっとしたテクニックを紹介していきます。 今回はちょっとライトな感じ&読み物になってしまっていますが「ユーザID単位で1つだけ持つデータ」と「パラメータなどのマスターデータ」についてご説明したいと思います。ちなみに次回はInnoDBのデータ構造の簡単な説明と複合プライマリーキーのデータについて、その次で紹介し損ねたちょっとマニアックなテクニックや性能管理のための手法を紹介することを予定しています。 その前に。。。 先日行われた JAPAN INNOVATION LEADERS SUMMIT で弊社松信が「ソーシャルゲーム

    ソーシャルゲームのためのMySQL入門その2 | BLOG - DeNA Engineering
  • Good night, Posterous

    Posterous Spaces is no longer available Thanks to all of my @posterous peeps. Y'all made this a crazy ride and it was an honor and pleasure working with all of y'all. Thanks to all of the users. Thanks to the academy. Nobody will read this.

  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • さらにMySQLを高速化する7つの方法

    MySQLを高速化する10の方法という記事がとても好評だったようである。記事を読んで頂いた皆さん、ありがとう。 この記事に対する便乗(?)でWeb屋のネタ帳: PostgreSQLを高速化する16のポイントという記事を書いて頂いたようだが、そちらの方もかなり人気だったようである。他人が作ったソフトウェアに改良を加えるというフリーソフトウェアやオープンソースソフトウェアの精神も基は便乗であるので、便乗については大いに賛成したいというかむしろ取り上げてくれてありがとう!!と思うわけであるが、ここでさらに俺はこう考える。 と。 Web屋のネタ帳さんの記事では16のポイントが紹介されているが、漢(オトコ)のコンピュータ道の記事は10の方法だったのであと6つ足りない。オトコは数で勝負!!というわけで今日はネタを振り絞ってさらに7つのMySQL高速化テクニックを紹介しよう。 1. インテルコンパイラ

    さらにMySQLを高速化する7つの方法
  • もしもデータベースサーバがクラッシュしたら

    人の作ったものは完璧ではない。完璧でないものはクラッシュする。故にデータベースはクラッシュする。サーバハードウェアの故障、OSのクラッシュ、データベースそのもののバグなど原因は様々であるが、永遠に停止することなく動き続けるRDBMSというものは存在しない。もちろん数年間無停止で問題が出ない場合もあるが、クラッシュするときはするので対策が必要である。もしもの時に備えて抜かりないのがスマートなオトコのスタイルである。データベースのご利用は計画的に。 と思ったそこのアナタ!!人生そんなに楽ではありません。 もちろんRDBMSはトランザクションのDurabilityを保証しているので99%の場合はそれでOKだけど、それはCOMMITが成功した場合の話。COMMITは大抵の場合高速な処理であるが、それでも処理にかかる時間はゼロではない。アプリケーションがデータベースサーバにCOMMITを送信してから

    もしもデータベースサーバがクラッシュしたら
  • 非リレーショナルデータベースを選ぶ(私達がMySQLからMongoDBへ移行した理由) | taro-nishinoの日記 | スラド

    先日のYuval Kogman氏のエッセイ″Why I don't use CouchDB″の私家版和訳(私は略して私訳と呼んでいます)が私の周辺のCouchDBファンに冷や水を浴びせたようです。どうも誤解もあるようで、Yuval Kogman氏は頭からCouchDBを否定しているのではないのです。氏のような一流のPerler(いや、Perlerでなくても)は野心的である反面、非常に現実的です。ですから、現時点においてはCouchDBがかなりスピード面で劣るのであるから、それを補って余りある野心的な(現にロードマップに載せていますよね)フィーチャーを早く見せなさいと、氏は言っているのです。これは叱咤激励でもあると思います。 私はたまたまMongoDBを選びましたが、夢を持ちたい人はCouchDBを選べばいいし、もっと現実路線の人は他のNoSQLデータベースを選べばいいのです。 そんなことよ

  • MySQLとApacheとPerlでデータベースアプリ(初心者向け)

    ホームページに戻る Webデータベースアプリケーションを作ってみる! とりあえずApache と MySQLPerl を導入できたので、次はCGIで作るWEBデータベースアプリでしょ!! ということで、また新たなことにチャレンジしてみました。間違いや改善点見つけたら、メールで教えて頂けると幸甚です。 復習がてら、Apache/MySQL/Perlの導入についてまとめてみました。 インストールプログラムをhttp://httpd.apache.orgよりダウンロードし、インストーラの指示に従ってインストール。 デフォルトのままなら、「Apache\htdocs\」がドキュメントルート、「Apache\cgi-bin\」がCGIスクリプトの置き場。 .htaccessによるユーザー管理を行うなら次のような設定も必要 「Apache\conf\httpd.conf」の中にある「Allow

  • MySQL :: MySQL 5.6 リファレンスマニュアル :: 6.2.7 アクセス拒否エラーの原因

    MySQL サーバーへの接続を試行したときに問題が発生した場合に問題を修正するために実行できる一連のアクションについて、次の項目で説明します。 サーバーが実行中であることを確認します。そうでない場合、クライアントは接続できません。たとえば、サーバーに接続しようとして次のいずれかのようなメッセージで失敗した場合、サーバーが実行中でないことが 1 つの原因であることがあります。 shell> mysql ERROR 2003: Can't connect to MySQL server on 'host_name' (111) shell> mysql ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111) サーバーは実行しているが、サーバーが待機しているのと異なる TCP/I

  • 連載記事 「快速MySQLでデータベースアプリ!」

    MySQLインストール完全ガイド 連載:快速MySQLでデータベースアプリ!(1) 軽快な動作で知られるMySQLDBアプリの構築を行う。今回は、MySQLの概要とインストール方法について解説しよう

  • Flash Lite 1.1 (loadVariables) + MySQL + PHP メモ

    Flash Lite 1.1 + MySQL + PHP データベースに保存・読み込みFlash lite1.1 でゲームを作っていて、 ゲームのスコアをloadVariables関数で, PHPにデータを渡してテキストデータ(.txt)に保存しようと思ったが ランキングスコアのソート処理とか排他処理 (複数のユーザからアクセス要求が出された時に同時書き込みを防ぐ) の部分で問題が出てくるということで、 PHPもろくにできない状態で、データベースの勉強を初めてしつつ Flash lite とPHPMySQLの連動 ができました。(制作 まる 2日) トライアンドエラーでかなりloadVariablesの部分と PHPのプログラム,文字コードでやられました。 なんとかできたと思うのでメモしておきます。 各携帯キャリアなどでチェックしていないのでなんともいえませんがね・・・ ちなみに私のはD

  • Flash Lite 1.1 (loadVariables) + MySQL + PHP メモ - s2works ~妄想IT戦士blog~

    Flash Lite 1.1 + MySQL + PHP データベースに保存・読み込みFlash lite1.1 でゲームを作っていて、 ゲームのスコアをloadVariables関数で, PHPにデータを渡してテキストデータ(.txt)に保存しようと思ったが ランキングスコアのソート処理とか排他処理 (複数のユーザからアクセス要求が出された時に同時書き込みを防ぐ) の部分で問題が出てくるということで、 PHPもろくにできない状態で、データベースの勉強を初めてしつつ Flash lite とPHPMySQLの連動 ができました。(制作 まる 2日) トライアンドエラーでかなりloadVariablesの部分と PHPのプログラム,文字コードでやられました。 なんとかできたと思うのでメモしておきます。 各携帯キャリアなどでチェックしていないのでなんともいえませんがね・・・ ちなみに私のはD

  • 【レポート】Facebookのデータセンターに見るMySQL活用事例 - MySQLカンファレンス (1) 熱気に満ちた4日間 - MySQL Conference and Expo | エンタープライズ | マイコミジャーナル

    4月14日から17日までの4日間、米カリフォルニア州サンタクララにおいて、MySQL Conference and Expo(以下、MySQLカンファレンス)が開催された。MySQL関連の最大のイベントである。セッションは有料で、日円で10万円を超える金額にもかかわらず、参加登録者数は2,000人近くに達し※、日からも多くのユーザーが参加していた。 ※ セッション参加のできない、展示会場のみの申し込み者も含む。 今回のMySQLカンファレンスでは、複数データセンターにまたがってMySQLを活用するような大規模事例、ペタバイト級の規模に挑戦する事例、MySQL Clusterの事例、Heartbeat + DRBDによる高可用性の事例など、さまざまな事例が発表された。とくにFacebookは、1万台のWebサーバ、800台のキャッシュサーバ(memcached)、そして1,800台のMy