※ ChatGPTを利用し、要約された質問です(原文:InnoDBへの変更でUPDATE処理ははやくなるでしょうか?)
InnoDBへの変更でUPDATE処理ははやくなるでしょうか?
このQ&Aのポイント
MySQLのInnoDBエンジンを使用することで、UPDATE処理の速度を向上させることができますか?
InnoDBの行単位のロック機能を活用することで、複数のコネクションからのアクセスによる高速な処理を実現できます。
ただし、単純にInnoDBに変更しただけでは処理速度に変化が見られない場合もあります。SQL文自体に変更を加える必要があるかもしれません。
InnoDBへの変更でUPDATE処理ははやくなるでしょうか?
ローカルのパソコンにXAAMPをインストールし
そのなかでPHPを使用してとあるデータの処理を行っています。
# MySQL 5.1.41 + PBXT engine
# PHP 5.3.1
# phpMyAdmin 3.2.4
使用しているテーブルの概要は以下のような形になっています。
id | URL | DATA | DATE
処理の内容としては
PHP上でURLにアクセスしデータを取得、一部のデータを抽出しDATAに挿入(UPDATE)するという形をとっています。
処理の対象となるデータが10万行以上に及ぶため、効率良く処理を行うための様々な方法を探していたのですが、テーブルをMyISAMから行単位のロックが可能なInnoDBに変更し処理を実行しているPHPに複数のコネクションからという考えにいたりました。
私自身あまり理解していないのですが
1.現状のMyISAMではたとえ複数のコネクションからアクセスし、update処理を行ってもテーブル全体にロックがかかっているため単体のコネクションからのアクセスと比べて処理の速度はかわらない。
2.InnoDBは行単位でのロックが可能なため、UPDATE対象の行以外はロックが行われず、複数からのコネクションでアクセスすればより高速に処理が可能
というえ考えで間違いないでしょうか?
また、この考えが間違いでないという前提の質問なのですが、実際InnoDBに変更して同じ処理を行ったのですが処理速度はまったく変化ありませんでした。単純にInnoDBに変更しただけではダメなのでしょうか?
SQL文自体になにか変更を加える必要があるのでしょうか?
わかりにくい質問かもしれませんが
よろしくお願いいたします。