2013-04-15 2 views
0

Я работаю над приложением Rails и использовал SQLite во время разработки, и скорость была очень быстрой.Медленные удаленные запросы

Я начал использовать удаленную базу данных MySQL, размещенную Amazon, и получаю очень медленное время запроса. Помимо попытки оптимизировать удаленную базу данных, есть ли что-то на стороне Rails, которую я могу сделать?

+0

Это довольно открытый. У вас есть что-то более конкретное, что мы можем запускать тесты? Вы уверены, что это SQLite против MySQL, например. вы тестировали с аналогичными (идеально одинаковыми) данными в обеих системах? Вы уверены, что это не сетевое время между вашим Rails-приложением и Amazon? – Alkini

+0

Задержка может быть убита по запросам MySQL. Вы уверены, что ваш сервер имеет хорошую связь с экземпляром базы данных Amazon? – tadman

ответ

0

Доступ к локальной базе данных по сравнению с удаленным будет показывать значительную разницу в скорости. Поскольку вы не указали каких-либо специфических особенностей, я не могу отказаться от этой проблемы, но я могу сделать предложение:

Попробуйте caching ваши запросы и мнения как можно больше. Это уменьшит количество запросов, которые вам понадобятся. Это хорошо работает для статических данных, таких как меню.

Optimization является ключевым. Удостоверьтесь, что вы устранили столько ненужных запросов, сколько сможете, и те запросы, которые вы делаете, запрашивают только нужные вам поля, используя метод select.

0

Профиль различных задействованных компонентов. Сам сервер базы данных является одним из них. Латентность сети - другая. В то время как для второго, вероятно, мало что можно сделать, вероятно, вы можете настроить большую часть первой части. Начиная с профилирования запросов и перехода к настройке самого сервера.

Зная, где искать, вы сможете начать с наилучшего подхода. Что касается кеширования, всегда помните об этом, но это может оказаться довольно проблематичным в зависимости от характера вашего приложения.

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