1. InnoDB, разумеется. Других рабочих транзакционных хранилищ как-то в mysql нету.
В каком смысле "сильный" чих? Любой. Любая запись блокирует всю таблицу.
И опять же myisam нетранзакционен. Нет транзакций - это не невозможность сказать rollback, это значит, что если что-то случилось (свет рубанули, например) - у вас вместо данных только бинарная каша.
@Remmi , верным или нет - невозможно сказать в отрыве от решаемой задачи. Хайлоад - это индивидуальные решения. Вам стоит пригласить архитектора, который разгребёт задачу на "что, зачем и когда".
Возможно, вам нужен только отдельный сторадж для активных данных (или, наоборот - для архивных). Возможно - вам действительно надо отказаться от РСУБД, возможно - пересмотреть схему обработки данных. Неизвестно, надо смотреть картину в общем и частном сразу.
1) по базам данных - запросто, если разделение обосновано. В частности, базы данных легко разнести на разные рейды.
По десяткам одинаковых таблиц - нет, не стоит.
2) не имеет значения. В случае шардирования (да и просто мастер-слейва) держать несколько открытых коннектов - нормально.
3) см.п.1
4) как уже упомянул - шардирование
Другой вопрос, если одного _сервера_ вам становится мало. Тогда лучше сразу мигрируйте на nosql, если нет требований по консистентности и транзакционности или читайте про шардирование РСУБД.
@samoilenkoevgeniy , а теперь если подумать:
PHP начнёт работать только после того, как получит целиком все данные
пока PHP работать не начал, ini_set вы вызвать не сможете.
@jcmvbkbc , тогда прошу прощения. Наверное, там было или не пустое окно, а хоть с чем-то управляющим или странный бредокод (что более вероятно для в те времена школьника).
Не сохранилось и с тех пор с программированием под win не сталкивался.
От таких ошибок хорошо помогает венгерская нотация.
Но в первую очередь, конечно, "Совершенный код" Макконнелла - называйте переменные точно и осмысленно. Написанное с ошибкой brand (не о реке в Германии же вы пишете?) - это единственное число. Название переменной противоречит содержимому.