基本上 MySQL 有兩種插入語法
1.傳統的寫法
mysql_query("insert into `table` (`field1` ,`field2` ,...) values ('value1', 'value2',...)");
2.第二種寫法
mysql_query("insert `table` set `field1`='value1' , `field2`='value2 , ...");
這兩者有甚麼差別呢?
第一種語法支持多項資料插入,只要在後方繼續把值往後塞
第一種語法支持多項資料插入,只要在後方繼續把值往後塞
mysql_query("insert into `table` (`field1` ,`field2` ,...) values ('value1', 'value2',...) , ('value1', 'value2',...) , ...");
而第二種雖然只能輸入一筆資料,但是寫法比較直覺
這樣子比較起來第一種似乎比較方便?
事實上第一種寫法只要其中一個值的填錯基本上就是全錯,所以在寫法上必須更小心注意。
第二種就像是UPDATE的寫法,一個欄位就是準確對應到一個值,所以出錯機會比較少。
另外就是經過測試當資料量很大的時候第一種寫法無法完成任務
這樣子比較起來第一種似乎比較方便?
事實上第一種寫法只要其中一個值的填錯基本上就是全錯,所以在寫法上必須更小心注意。
第二種就像是UPDATE的寫法,一個欄位就是準確對應到一個值,所以出錯機會比較少。
另外就是經過測試當資料量很大的時候第一種寫法無法完成任務
數據量/行 | 第一種方式的時間/s | 第二種方式的時間/s |
10 | 0.000992774963379 | 0.0041561126709 |
1W | 0.613435983658 | 4.72470808029 |
2W | 0.777942180634 | 6.5687379837 |
3W | 1.21902298927 | 11.7160160542 |
5W | MySQL server has gone away | 13.5717499256 | 10W | MySQL server has gone away | 28.6645958424 |
沒有留言:
張貼留言