2015-05-21 7 views
0

Я следую за simple ToDo list example, чтобы узнать Laravel 5. Я настроил код точно так, как указано, а для небольшой БД APP работает отлично.Laravel 5 неудача на большой базе данных

Проблема возникла, когда я установил мои пользовательские семена (большая БД) (файлы прилагаются ниже). Когда я установил счетчик проекта ~ 10-50, APP отлично работает. Установка его в ~ 1000 + диапазон (проекты 1k, задачи 100k), я должен щелкнуть (URL-адрес запроса APP) несколько раз, чтобы даже получить задачу удаления для работы. Стандартные методы delete, update сбой, только store работ. Любая идея почему?

Я проверил с помощью phpMyAdmin, что БД настроена правильно. При удалении я также установил проверку Exception.

EDIT: Я обнаружил, что операция store работает отлично даже в базе данных 100 КБ. И если я удаляю что-то, я просто store d (используя приложение PHP), он работает. Однако для посещенных записей delete не работает (не менее 5 попыток).

ProjectsTableSeeder.php

http://pastebin.com/HZrZNQgC

TasksTableSeeder.php

http://pastebin.com/uB03uTTa

TasksController.php

http://pastebin.com/xuACA29B

Оригинальные файлы (из учебника): here.

+1

Неясно, в чем проблема, которую вы видите - вы получаете сообщение об ошибке? Вы указываете несколько кликов, чтобы получить что-то, что нужно удалить - это просто очень медленно? – Kryten

+0

Да, я проверил журналы, никаких ошибок. Также не исключение. Я проверил, что вход правильно принят путем сброса массива. Он просто перенаправляет, никаких изменений состояния. Как я уже упоминал, для небольшой БД нет проблем. – prakharsingh95

+0

Я использую Apache и MariaDB (MySQL) в Arch Linux. – prakharsingh95

ответ

0

Я считаю, что вы пытаетесь отобразить слишком много записей одновременно.

Попробуйте добавить это к вашему методу индекса.

public function index(Project $project) { 
    return view('tasks.index', compact('project'))->paginate(20);; 
} 

Вы можете отобразить его на своем экране.

{!! $project->appends(Request::except('page'))->render() !!} 

Я не верю, что в нем больше нет настройки.

Документация по адресу pagination довольно хорошая.

Если вы еще не зарегистрировались Laracasts, то это стоит каждые десять центов.

Отъезд Crazy Simple Pagination для получения дополнительной информации о разбиении на страницы.

+0

Нет, я имею в виду, что семена работают. Я проверил db, используя phpMyAdmin, также проверяя диапазоны идентификаторов. Я имел в виду, что при запросе с помощью приложения для больших баз данных APP НЕ РАБОТАЕТ. Семена DB прекрасно. – prakharsingh95

+1

@ prakharsingh95 может быть, вы могли бы опубликовать этот код. Также вы можете дать больше информации о том, как он не работает. Это просто медленно или не реагирует? Ведет ли он себя иначе, чем ожидалось? – whoacowboy

+0

Я приложил [TasksController.php] (http://pastebin.com/xuACA29B) в вопросе. Это файл, который для APP, который взаимодействует с БД с помощью «Eloquent». Как я уже сказал, для небольшой БД этот код работает. Никаких логических ошибок. – prakharsingh95

0

Я понял. Оказывается, я ошибочно полагался на Faker, чтобы генерировать 100k пули, что и было проблемой. Несколько кликов для удаления были фактически различными удаляемыми элементами (: P).

изменить производящую функцию пробкового от:

'slug' => $faker->firstName

к:

'slug' => $faker->firstName.$faker->lastName.rand(0, $BATCH_SIZE)

и теперь он работает прекрасно! Уф. (у меня были 1k проектов, 1M задач, и почти нет лаг!)

Смежные вопросы