반응형
300,000 개 이상의 행이있는 테이블이 있고 'id'열에 대해 가장 높은 값을 선택해야합니다. 일반적으로 다음과 같이합니다.
SELECT id FROM my_table ORDER BY id DESC
...하지만 이로 인해 쿼리 속도가 느려지므로 사용하고 싶지 않습니다. 이 상황을 해결하는 다른 방법이 있습니까? id
는 자동 증가 및 기본 키입니다.
나중에 수정 : 귀하의 의견에서 제외되었으므로 내 전체 코드가 상당히 잘못 작성된 것 같습니다. 아래에 내가 작업중인 코드 샘플과 테이블을 게시했습니다. table_x의 마지막 ID + 1을 두 테이블 (table_x 자체 포함)에 삽입하는 적절한 방법을 제안 할 수 있습니까? 스크립트가 두 번 이상 실행될 것임을 언급해야합니다.
TABLE_X TABLE_Y
------------ ----------
id_x | value id_y | id_x
------------ ----------
1 | A 1 | 3
2 | B
3 | C
<?php
for($i=0; $i<10; $i++){
$result_x = mysql_query('SELECT id_x FROM table_x ORDER BY id_x DESC');
$row_x = mysql_fetch_array($result_x);
$next = $row_x['id_x'] + 1;
mysql_query('INSERT INTO table_x(id_x) VALUES("'.$next.'")');
mysql_query('INSERT INTO table_y(id_x) VALUES("'.$next.'")');
}
?>
해결 방법
다음은 사용해야하는 올바른 코드입니다.
mysql_query('INSERT INTO table_x(id_x) VALUES(NULL)');
$id = mysql_insert_id();
mysql_query("INSERT INTO table_y(id_x) VALUES($id)");
참조 페이지 https://stackoverflow.com/questions/9456280
반응형
'MySql' 카테고리의 다른 글
MySQL SQLiteDatabase-where 절을 사용하는 방법? (0) | 2020.09.20 |
---|---|
MySQL 덤프에서 DEFINER 절 제거 (0) | 2020.09.20 |
MySQL shuffle random MYSQL results (0) | 2020.09.19 |
MySQL 두 테이블에서 선택하는 MySQL (0) | 2020.09.19 |
MySQL 외래 키 제약 조건을 제공하도록 테이블 변경 (0) | 2020.09.19 |
댓글