Вы можете определенно запустить несколько консолей одновременно для одной базы данных.Ограничение - количество открытых соединений, которые допускает база данных.В Mysql 5.1 значением по умолчанию было 100, а в 5.5 - 151. Маловероятно, что узкие места закончатся, пока что-то еще не станет узким местом.
Возможно, сработает одновременное выполнение нескольких процессов, но этоможет не.Полный анализ этого довольно сложен.Несколько вещей, которые вы можете сделать, чтобы обеспечить правильную работу с несколькими одновременными клиентами.Во-первых, если вы оберните каждое изменение в транзакции базы данных, которая позаботится о большинстве того, что вам нужно:
transaction do
# all your code to create / modify a single item goes here
end
Убедитесь, что в ваших таблицах используется формат InnoDB вместо MyISAM, который не поддерживает транзакции.
Кроме того, из-за слишком коротких указаний, поместите все ограничения проверки, которые вы можете непосредственно в базу данных.Поэтому, если у вас есть ограничения уникальности или отношения внешнего ключа, добавьте их в свою схему вручную, поскольку rails не делает этого по умолчанию.Сложные проверки, которые сравнивают различные объекты модели (кроме отношений FK, как в belongs_to
), могут потребовать проверки триггера базы данных - надеюсь, вам это не нужно.Но если вы получите все свои проверки в базе данных изначально, и тогда все должно работать.