質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • PHP

    19882questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    5702questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Linux

    3646questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • SQL

    2328questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

  • Windows

    1406questions

    Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

WindowsとLinuxでMySQLを実行する際、何が違う?

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 2,452
皆さんの質問事項、いつも拝見させていただいています。
今回、私事ではあるのですが、ひとつ質問させていただきたいと思います。

WindowsとLinuxでPHPを利用してMySQLと接続する際、何が違うのかということです。
私は普段Linux環境で作業を行っています。
ある案件で、Linux環境で開発したものをWindows環境に設置して動作をさせることを行いました。
MTのデータベースからデータを取得し、PHPで加工して出力するといったものなのですが(ざっくりですみません。。)、いざWindowsに設置してみると、目に見えるほど表示速度に違いがありました。

ただしLinux環境では気になるほどの遅さではなく、Windowsに設置した状態ではとても遅いというものでした。
Mysqlのチューニングはこちらで考えうる限りは行い、かつ名前解決で躓くという問題(IPv4,IPv6の件)も、localhost→127.0.0.1に変更してあり、my.iniにはskip-name-resolveも念のため追記してあります。

下記、実際に行ってみた検証結果です。
一応PHPも確認してみましたが、早かったです。。。

【PHP速度検証】
<?php
$time_start = microtime(true);
for($i=0;$i<1000000;$i++) {
var_dump($i);
}
$time_end = microtime(true);
$time = $time_end - $time_start;

echo $time;

結果 : windows 1.8961119651794
linux 1.9274280071259 

------------------------------------------------------------------------
【MySQL速度検証】
<?php
$time_start = microtime(true);
for ($i=0; $i < 300; $i++) {
    $link = mysql_connect('localhost', 'root', '');
    $db_selected = mysql_select_db('test2', $link);
    $result = mysql_query('SELECT * FROM tst');
    while ($row = mysql_fetch_assoc($result)) {
        print('<p>');
        print('id='.$row['id']);
        print(',name='.$row['name']);
        print('</p>');
    }
    mysql_close($link);
}
$time_end = microtime(true);
$time = $time_end - $time_start;

echo $time;

結果 : windows 2.0411188602448
         linux 0.27686905860901

かなりな差がでた結果となってしまいました。。。
MySQL,PHP共にチューニング済みな状態です。また、connect部分はlocalhost→127.0.0.1に変更してwindowsでは実行しています。

もし、手掛かりになることをご存じの方がいらっしゃれば、ご教示頂けると幸いです。orz
よろしくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

OSとMySQLのバージョンはいくつでしょうか?DBエンジンは何でしょうか?
また、現在の測定方法だと接続に時間がかかっているのか、クエリに時間がかかっているのかわかりません。
接続、解除をループの外に出した場合はどうなるでしょうか?

WindowsとLinuxでInnodbの書き込みであればinnodb_flush_log_at_trx_commitの設定でパフォーマンスに差が出るようです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/01/22 10:28

    お返事頂き、ありがとうございます。

    結果から申しますと、原因が判明致しました。
    DBエンジンのチェックを行おうとした際、InnoDBだと思い込んでいたのですが、いざ中身を空けてみるとMyISAMとなっていました。。。orz
    my.iniにてデフォルト設定をInnoDBにしていたのですが、Movable Typeの自動DB生成にてエンジンがMyISAMとして構築されてしまっていたようです(ものすごい初歩的な気づきで、お恥ずかしい限りです。。

    データベースエンジンをInnoDBにしてやると、処理速度がLinuxよりは少し劣ってはいますが、ほぼ変わらない状態にまで改善しました。

    本当にありがとうございました。
    現状でもまだLinuxに劣っている点は少し気になりますが、これで案件を進めることができそうです。
    重ね重ね、ありがとうございました。

    キャンセル

0

Windowsではファイル名がCase Insensitiveなので、テーブル名(MySQLでの実体ファイル名)とスキーマ名(MySQLでの実体ディレクトリ名)に気を付けないといけないです。あと、innodb_file_per_tableは設定しておかないとエラいことになります(INSERTもUPDATEもSELECTも物理的に遅くなりがち)。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    19882questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    5702questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Linux

    3646questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • SQL

    2328questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

  • Windows

    1406questions

    Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。