Мне интересно, как лучше вставить многомерный массив значений в базу данных - в частности, две таблицы? Я создал следующий цикл Еогеасп, который создает запрос, который будет вставлять все записи в одну таблицу:Вставить PHP-массив в две таблицы MySQL
foreach($newPosts as $value) {
if(!isset($postQuery)) {
$postQuery = "INSERT INTO posts (primay_key, col1, col2, col3, col4) VALUES ('$value[0]', FROM_UNIXTIME($value[4]), '$value[2]', '$value[1]', '$value[3]')";
} else {
$postQuery .= "('$value[0]', FROM_UNIXTIME($value[4]), '$value[2]', '$value[1]', '$value[3]')";
}
}
Я хочу сохранить одно из значений в отдельной таблице, так как значение особенно велико, а строка отформатированный как Longtext. Это значение также редко запрашивается при запросе базы данных. Я предполагаю, что перемещение его во вторую таблицу увеличит скорость запроса первой таблицы? Это верно?
Если я переместил это значение во вторую таблицу, я хочу связать таблицы с primary_key из первой таблицы, которая является значением автоинкремента. Как я прокручиваю этот многомерный массив и вставляю свои данные в обе таблицы, вставляя primary_key первой таблицы во вторую? Я знаю, что могу использовать LAST_INSERT_ID(), если я выполняю каждый запрос по одному за раз. Некоторые обновления будут содержать сотни строк, поэтому я не хочу этого делать.
Заранее благодарен!
«в отдельной таблице, поскольку значение особенно велико». Это не очень хорошая причина. Если это один и тот же тип данных, он должен находиться в одной таблице, хотя вы можете помочь нам судить о ситуации, указав, что именно вы вставляете. Но если вы не укажете столбец в ваших запросах, вы не заметите значительную задержку. Просто держитесь подальше от 'SELECT *', но вместо этого укажите только те столбцы, которые вам нужно выбрать. – GolezTrol
Кроме того, я думаю, вы должны сначала создать простую версию и посмотреть, как она работает. Теперь вы думаете о редизайне базы данных и применении массовых вставок, не пробовав вообще, если простое решение работает достаточно быстро. Преждевременная оптимизация - это корень всего зла, или, по крайней мере, это дает вам много бесполезно сложного, сложнее поддерживать код. – GolezTrol
Можете ли вы показать мне пример массива? –