Различные вопросы по PHP и MySQL

244K
.
Кадило крутится, лавэха мутится
# Swank (02.06.2015 / 09:53)
Делаю игру, хочу сделать игровое поле, для начала 1000х1000 клеток.
Сойдет ли mysql? Ведь это 1000000 записей.
Зависит ли время выполнения элементарных select'ов и updete от кол. записей?
Может mon
Время от количества зависит.
Миллион записей, не так много. При нормально проиндексированных таблицах снижения скорости не заметишь.
.
Сексуальность валенка
Как такой скрипт может создавать более 1000001 записей?
<?php
set_time_limit(0);
require 'init.php';
$x = $y = 1;
for($i=1;$i<1000001;$i++) {
    
    DB::prepare('INSERT INTO `world` (`x`, `y`)
VALUES (:x, :y);', ['x' => $x, 'y' => $y]);
    if($x < 1000)
        $x++;
    else {
        $x= 1;
        $y++;
    }
    
}

?>
.
Swank
Сексуальность валенка
Дело в браузере наверно
Запустил скрипт с помощу wget и все стало норм.
Сам задал сам ответил
.
(\/)____o_O____(\/)
Swank, prepare должен быть вне цикла
а execute в цикле, так ты каждый раз подготавливаешь запрос, а достаточно один раз и вставлять записи
.
Сексуальность валенка
Koenig, В курсах, но чет забыл, но ладно уже наспаунил милион клеточек
.
Сексуальность валенка
Теперь другой вопрос:
Как мне выбрать клеточки в радиусе 8 клеток от клетки с x = 486, y = 256?
.
Сексуальность валенка
А точней не с радиусом, а квадрат в 4 клетки вокруг x, y, может кто запрос написать
.
Сексуальность валенка
поторопился я спрашивать, сделал сам
.
(\/)____o_O____(\/)
Swank, пример кода, я просто когда пятнашки писал, тоже надо было вокруг пустой клетки координаты вычислять https://ru.wikipedia.org/wiki/Пятнашки
.
Swank
Сексуальность валенка
Koenig, Зделал так:
<?php
require 'init.php';

$x = USER::$data['x']; // Позиция кёниг'а
$y = USER::$data['y']; // Тоже позиця
$r = 4; // насколько далеко кёниг может смотреть )

$rows = DB::prepare('SELECT * FROM `world` WHERE `x` > :x1 AND `x` < :x2 AND `y` > :y1 AND `y` < :y2',[
    'x1' => $x - $r - 1,
    'y1' => $y - $r - 1,
    'x2' => $x + $r,
    'y2' => $y + $r
])->fetchAll(); // Узнаем что находиться вокруг кёнига
//print_r($rows);
$out = [
    'result' => '1',
    'world' => $rows
];
unset($rows);
echo json_encode($out);
//echo 'Генирация: ' . round(microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"], 3) . 'сек. Память: ' . round(memory_get_usage() / 1024, 2) . 'Кб. Запросов: ' . DB::getQueryCount() . ' Время выполнения запросов: ' . round(DB::getQueryTime(), 3). 'сек.';

?>
Всего: 7969