Будет ли нормально, если этот запрос используется одновременно несколькими пользователями?

#php #mysql

#php #mysql

Вопрос:

у меня есть таблицы, которые выглядят следующим образом :

 =================================      ==========================
              USER                                NOTE
=================================      ==========================
id_u int auto_increment (PK)           id_n int auto_increment (PK)
name varchar(50)                       id_u int (FK)
                                       text varchar(100)
=================================      ==========================
  

Мне любопытно, может ли этот запрос вызвать какие-либо проблемы на веб-сайте с большим количеством пользователей.

 $query = "INSERT INTO USER VALUES('','john')"; //query
$result = mysql_query($query);
if($result){
    $query = "INSERT INTO NOTE VALUES (LAST_INSERT_ID(),'','abc')";
    $result = mysql_query($query);
    if($result){
        echo "success";
    }else{
        echo "failed";
    }
}else{
    echo "failed";
}
  

Будет ли нормально, если несколько пользователей будут использовать этот запрос одновременно?

Ответ №1:

При одновременном выборе из и вставке в таблицу MySQL создает временную таблицу для хранения строк из SELECT, а затем вставляет эти строки в целевую таблицу. Однако остается верным, что вы не можете использовать INSERT В t … ВЫБЕРИТЕ … ИЗ t, когда t является ВРЕМЕННОЙ таблицей, потому что на ВРЕМЕННЫЕ таблицы нельзя ссылаться дважды в одном и том же операторе

ссылка:http://dev.mysql.com/doc/refman/5.7/en/insert-select.html