• 締切済み

データの同時書込みについて

MYSQLとPHPをつかって各支店からデータを入力してもらい、集計したいと考えています。 仮に各支店でまったく同時にデータを書き込むことがあったとするならデータはきちんと書き込まれるでしょうか? また、同時に複数の人間が書込みの操作をした場合、どのくらいの件数まで書込みできるでしょうか? 設定はどのような設定にするのが安全で確実でしょうか? テーブルのフィールドタイプはInnoDBとしています。 PHPのバージョンは4.3.8 MYSQLは4.0.26-ntです。 わかりにくい説明で申し訳ないです。 よろしくお願いします。

みんなの回答

回答No.2

#1回答者です。 他の方の質問に答えたものがありますので、URLを参照ください。 参考URLの#2回答では、MySQLのマニュアル参照先へのリンクも貼っています。 排他制御に関しては、ネット検索すれば、いくらでも記事が出てくると思います。

参考URL:
http://oshiete1.goo.ne.jp/qa3023414.html
13B-RE
質問者

お礼

こんにちは回答ありがとうございます。 排他制御というんですね。(~_~;) いろいろ調べてみます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

RDBMSには、排他制御という機能があります。排他制御は、複数ユーザからの同時更新によるデータ破壊を防止します。また、検索同士でも、複数ユーザで共用して見ることができる以外に、特定ユーザが見ている場合は、他ユーザには見せないといった制御も可能です。 どのRDBMSでも、排他制御の機能を持っています。しかし、各RDBMSにより、排他制御の仕組み(排他制御の単位、強さ、区間、指定方法など)は様々です。幾つかのオプション機能を組み合わせることにより、他のRDBMSと似たような制御にすることはできますが、まったく同じ制御にすることは困難です。 >仮に各支店でまったく同時にデータを書き込むことがあったとする >ならデータはきちんと書き込まれるでしょうか? 更新されたデータは、更新したユーザが「COMMITまたはROLLBACK」しないと、他ユーザからは参照できません(排他制御による待ちになる)。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • MySQLのInnoDBテーブルについて

    MySQLのバージョンは4.1.13-ntです。 元々MyISAMテーブルを使用してたんですが、トランザクション機能を使いたいということでInnoDBテーブルに変えたところ、検索に凄く時間がかかるようになりました。データ件数は二百万件ぐらいです。MyISAMテーブル の時は数秒でかえってきたのが、InnoDBテーブルでは何分という結果になりました。 InnoDBは早いと聞いたのですが、データが大量になると遅くなるのでしょうか?ご教授お願い致します。

  • 同時書き込み

    mysqlを使おうと勉強中です mysqlに同時書き込みした場合についての質問です 例えば,5人のユーザーが同時に書き込んだとします。書き込むレコードは全て違います ユーザー1がレコード1行目に書き込み ユーザー2がレコード2行目に書き込み ユーザー3がレコード3行目に書き込み ユーザー4がレコード4行目に書き込み ユーザー5がレコード5行目に書き込み この場合は、普通のtableで処理できますか?

    • ベストアンサー
    • MySQL
  • ピボットテーブルの元データが既に集計された表のとき

    上手く質問の内容が伝えられるか心配ですが。 ピボットテーブルは通常、元データの表は最上部にフィールド名があり、横軸にはフィールド名がないリスト化されたものを使用しますよね。 今回の質問は既に縦軸横軸にフィールド名がある、集計されている表をピボットテーブルの機能を使って色々な角度から集計したいとき、そのデータを整形する、またはそのままでもピボットに利用できる方法はないものかと考えています。 たとえば、横軸のフィールド名には「営業エリア」「支店名」と2段の項目があり、それぞれの支店の舌に、業績として「予算」「実績」「前年」と言うフィールド名が設定され、縦軸には「上半期、下半期」「月」と2段になったフィールド名があり、中にそれぞれの業績が表になっていると言う感じです。 なぜ、このようなことをしたいのかというと、私の会社で出力されるデータが全て集計表となっていて、自分のやりたい分析をピボットテーブルを使ってやるには適さないフォーマットでしかダウンロードできないからなんです。 縦軸、横軸にフィールド名がある集計された表を、ピボットでうまく使える方法や、エクセルのマクロなどどなたかご存じないでしょうか? よろしくお願いします。

  • データの同時編集を制限する方法 PHP MySQL

    PHPとMYSQLで、情報の共有用のフォームを作っているのですが、複数人による同時編集の制限について困っております。 フォームへの書き込みが追記されていくようにしたいと考え、フォームを編集するとMysqlのデータを読み出してきて編集し、編集完了ボタンでMysqlのデータを上書きするものです。 当たり前なのですが、パソコンAとパソコンBで同時に編集した場合は後出しのみ残ります。これを全ての書き込みを残すようなものにしたいのですが、具体的な考え方がわからず困っています。 質問です 「他社が編集中はデータを上書き禁止にする」やBBSのようにどんどん追記していく方法があると思うのですが概念としてのロジックはどの様なものがあるのでしょうか 出来るだけ簡単な方法で、複数人での同時編集したデータが消えなければいいレベルのものを作りたいと考えています。 どなたかスキルのある方のご教授を頂ければ幸いです。

    • 締切済み
    • PHP
  • 重複しないデータの抽出について

    MYSQL5.0.77で DBをつくり テーブル1のAフィールドのデータから テーブル2のAフィールドのデータ、 テーブル3のAフィールドのデータ、 テーブル3のAフィールドのデータ、 のいずれにも重複しないデータのみ 抽出したいと思っています。 どのようなSQL文を書けばよいでしょうか? じぶんでいろいろ試しましたがどうしても出来ません。 どなたかご教授願います。

    • ベストアンサー
    • MySQL
  • AUTO_INCREMENT の値をINSERT前に知りたい

    PHP(PEAR)+MYSQLでWEBアプリを作成しているのですが、AUTO_INCREMENTを設定した値をデータのINSERTを行う前に取得したいのですが、どのようにすればいいのでしょうか?INSERT後であればLAST_INSERT_ID()やmysql_insert_id()で取得できるのは分かっているのですが…。ちなみに現在のテーブル型はInnoDBです。MySQLもしくはPearの命令でお分かりになる方お教えください。よろしくお願いします。

  • date型フィールドへのデータ挿入がうまくいきません。

    date型フィールドへのデータ挿入がうまくいきません。 PHP5.2.6,MySql5.0.51bを利用しています。 フィールドにdate型を指定して、phpからmysql_queryで"2010-1-1"というデータを挿入したところ"0000-00-00"として格納されていました。 phpMyAdminから「挿入」・「SQL」で"2010-1-1"を挿入したところちゃんと"2010-01-01"として格納されました。 phpから"2010-1-1"というデータを"2010-01-01"として格納するにはどうすればいいのでしょうか? 文字コードはphp・MySqlともにUTF-8を使用しています。

    • ベストアンサー
    • PHP
  • WAMP Server2.0のmysqlでInnoDBを使いたい

    Windows環境でお手軽Apache+PHP+MySQLがインストールできる WAMPServer2.0をインストールして使ってみたのですが、MySQLのテーブルのエンジンタイプが InnoDBを指定できない(エラーになります)。 私はMySQLは当然InnoDBが使えると思っていたのですが、WAMPでは無理なのでしょうか? http://www.forest.impress.co.jp/article/2008/12/19/wampserver.html

    • ベストアンサー
    • MySQL
  • フィールドの設定

    よろしくお願いします。 かねやんMySQLでデータベースを作成、PHPで作成したフォームからデータを書き込みしたいです。 ほぼ出来上がっていますが、データの書き込みが最初の1件のみで2件目からが入りません。 テーブルに「ID」というフィールドを作成(連番にしたい)しているのですが、以下の設定をしました。 ・データ型 smallint ・データ長 4 ・プライマリーキー、UNSIGNEDにチェック 他は何も設定していません。 作成後にテーブルを編集画面で確認すると、デフォルトに「0」が入った状態になります。 おそらくこれが原因だと思うのですが、どのようにすればデフォルト値をなしにして連番が振れるのでしょうか?

    • ベストアンサー
    • MySQL
  • Accessにてデータの更新

    Accessにて、フォームにボタンを作成し、クリックすると フォームのテキストボックスのデータを取得し、 テーブルのデータを更新するVBAを作りたいのですが、 mySQL = "UPDATE テーブル名 SET フィールド名 = '1234'" このようにすると、フィールドが1234のデータに更新されるのですが、 これを namae =Me!テキストボックス名 mySQL = "UPDATE テーブル名 SET フィールド名 = namae" とするとうまくいきません。 正しい書き方をお願いします。

社会保険の控除額について
このQ&Aのポイント
  • 社会保険【厚生年金】の控除額はどのくらいになるのか知りたいです。東京都在住で東京都勤務の47才男性独身の場合、総支給額が16万円の場合と20万円の場合について教えてください。
  • 社会保険【厚生年金】の控除額を知りたいです。東京都在住で東京都勤務の47才男性独身の場合、総支給額が16万円と20万円の場合について教えてください。
  • 47才男性独身の東京都在住で東京都勤務の場合、社会保険【厚生年金】の控除額はいくらになるのか知りたいです。総支給額が16万円と20万円の場合について教えてください。
回答を見る