
ローカルのパソコンに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文自体になにか変更を加える必要があるのでしょうか?
わかりにくい質問かもしれませんが
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT文でのデッドロックに対...
-
accessのロック
-
トランザクション中にSELECTし...
-
更新ロックとデッドロック
-
DB2でSelectした時(rollback,c...
-
どういう時にテーブルロックを...
-
SELECT時の行ロックの必要性に...
-
AccessShareLock はどの程度気...
-
SELECT FOR UPDATE にトランザ...
-
UPDATE文で発生するデッドロッ...
-
「マスタ」と「テーブル」の違...
-
ACCESS2007 フォーム 「バリア...
-
Accessにインポートしたら並び...
-
DataTableから条件を満たした行...
-
エクスポート時の改行コードに...
-
請求と入金のテーブルの作成の...
-
SQLで○○の値以外を持っているレ...
-
クエリのキャンセルがいつにな...
-
accessで移動平均する方法
-
ACCESS2000のテーブル構造
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT文でのデッドロックに対...
-
SELECT時の行ロックの必要性に...
-
accessのロック
-
INSERTにおいてロック処理は必要か
-
SQLServer Insertが遅い
-
AccessShareLock はどの程度気...
-
Oracleの排他制御について教え...
-
更新ロックとデッドロック
-
MySQLは難易度が高いのでSQLite...
-
DB2でSelectした時(rollback,c...
-
SELECT文でタイムアウト...
-
MongoDBのデータ更新はDBを排他...
-
max+1で初番する場合 for updat...
-
UPDATE文で発生するデッドロッ...
-
デッドロックが発生します。
-
DB2のロック調査
-
DB2の更新ロックについて
-
SQLServerの明示的なロックの仕...
-
SQL Server2005で変換デッドロ...
-
トランザクション中にSELECTし...
おすすめ情報