0

WindowsマシンにMYSQLデータベースがあり、Linuxサーバーにも同様のセットアップがあります。Windowsセットアップで非常に基本的な更新/削除/ドロップクエリを実行することに問題はありませんでしたが、Linuxサーバーで実行するとクエリがハングします。WindowsマシンのMYSQLバージョンは5.1.42ですが、Linuxの場合は5.6.5-m8です。また、更新のハングは単一のテーブルに限定されません。私のデータベースには、この更新/削除/ドロップがハングしている4〜5個の相互参照テーブルがあります。ただし、更新/削除/ドロップは、他の無関係なテーブルに対して機能します。Linuxでは、まず、Windowsマシンから生成されたダンプ(挿入なし)を単純に調達します。次に、挿入ステートメント(insert into flat (FLATID, BLOCKNO, FLATNO) Values (1, 'B1','F1');)を実行します。3番目に、table()でupdateを実行するUPDATE FLAT SET FLATNO='F2';と、ハングします。フラットテーブルの説明は以下のとおりです。

+----------------------+--------------+------+-----+---------+----------------+
| Field                | Type         | Null | Key | Default | Extra          |
+----------------------+--------------+------+-----+---------+----------------+
| FLATID               | bigint(20)   | NO   | PRI | NULL    | auto_increment |
||BLOCKNO              | varchar(20)  | NO   |     | NULL    |                |
| FLATNO               | varchar(10)  | NO   |     | NULL    |                |
||col_COLID    | int(11)      | YES  | MUL | NULL    |                |
| famID_FAMID    | bigint(20)   | YES  | MUL | NULL    |                |
| | allotID_ALLOTID | bigint(20)   | YES  | MUL | NULL    |                |
|+----------------------+--------------+------+-----+---------+----------------+
4

1 に答える 1

0

INNODB変数をいじるなど、ほとんどすべてを試した後、最終的に参照allotID_ALLOTIDをフラットテーブルから削除しようとしました。ALLOTMENT テーブルは、FLAT テーブルも参照していた FAMILY テーブルを参照していました。フラットなファミリーテーブルの両方からallotID_ALLOTIDを削除するとうまくいきました。

于 2013-03-25T08:13:15.770 に答える