У меня теоретический вопрос и не может найти хорошее решение для этого в сети:MySQL строки блокировки MyISAM InnoDB
Для более TBLA с 100000 РИК.
Я хочу иметь несколько запущенных процессов/приложений, каждый из которых обращается к tblA.
Я не хочу, чтобы приложения получали доступ к тем же реквизитам. т.е. я хочу, чтобы appA получал доступ к 1-м 50 строкам, а appB мог получить доступ к следующим 50 и appC, получая следующие 50 после этого.
Так что в основном я хочу, чтобы приложения выполняли некоторую выборку на следующем «N »в таблице. Я ищу способ доступа/обработки данных строки как можно быстрее, по сути, запуск приложений одновременно. но я не хочу, чтобы приложения обрабатывали одни и те же строки.
Итак, как именно этот процесс должен быть настроен?
Это просто делает вид:
select from tblA limit 50
and doing some kind of row locking for each row (which requires innodb)
кода/псевдо указателей было бы полезно.
1.) myisam делает блокировку таблицы, нет блокировки строк или страниц. Необходимо использовать innoDB. http://stackoverflow.com/questions/917640/any-way-to-select-without-causing-locking-in-mysql 2.) получить размер полного запроса, а затем обрабатывать разделы для каждого запроса в вашем приложении; mysql позаботится о блокировке – Alfabravo
Как сказал @Alfabravo, в настоящее время движок innodb способен выполнять блокировку на уровне строк. Возможно, вам стоит рассмотреть такую обработку хранимых процедур. Однако у нас нет подробной информации о том, какая обработка вы хотите сделать, что наиболее важно для принятия решения для решения – rkosegi