MySQL, более вероятно, будет иметь проблемы повреждения базы данных, и он не фиксирует их автоматически, когда они происходят. Я работал с MSSQL начиная с версии 6.5 и не помню проблему повреждения базы данных, выводящую базу данных из эксплуатации. Несколько раз я работал с MySQL в продуктивной среде, проблема повреждения базы данных вывела всю базу данных из эксплуатации, пока мы не выполнили волшебство, "зафиксируйте мой поврежденный индекс" вещь от командной строки.
система транзакции и журналирования MSSQL, по моему опыту, обрабатывает примерно что-либо - включая цикл включения и выключения питания или отказ оборудования - без повреждения базы данных, и если что-то испорчено, это фиксирует его автоматически.
Это было моим опытом, и я был бы рад услышать, что это было зафиксировано, или мы делали что-то не так.
http://dev.mysql.com/doc/refman/6.0/en/corrupted-myisam-tables.html
http://www.google.com/search?q=site%3Abugs.mysql.com+index+corruption
Для этого маршрутизатор не нужен. Вам нужно настроить прослушиватель событий, который запускается при каждой загрузке страницы, а затем обращаться к переменным в коллекции запросов. Подойдет событие controller_front_init_routers.
Итак, настройте конфигурацию вашего модуля следующим образом
<global>
<events>
<controller_front_init_routers>
<observers>
<packagename_modulename_observer>
<type>singleton</type>
<class>Packagename_Modulename_Model_Observer</class>
<method>interceptMethod</method>
</packagename_modulename_observer>
</observers>
</controller_front_init_routers>
</events>
</global>
А затем создайте следующий класс
app/code/local/Packagename/Modulename/Model/Observer.php
class Packagename_Modulename_Model_Observer {
public function interceptMethod($observer) {
$request = $observer->getEvent()->getData('front')->getRequest();
$afid = $request->afid;
//do whatever you want with your variable here
}
}
interceptMethod
можно назвать как угодно.