Очень простой способ исправить эту проблему, которая работает очень хорошо и предотвращает атаки DDOS, чтобы использовать объемные вставки для функции пост-обработки. Для вашего tinyurl есть вызов, который позволяет сохранить все данные, которые вводятся как конкатенированный файл в файловой системе в плоском текстовом файле (CSV).
Затем запустите задание cron каждые 1 ~ 5 минут, которое читает текстовый файл и делает массовым вставить в mysql. Ключевым моментом здесь является массовые вставки. Гораздо эффективнее делать 1 объемную вставку, чем 100 000 000 одиночных запросов.
Чтобы дать вам представление, я ежедневно обрабатываю массивные вставки данных, где мы получаем примерно 1 миллион запросов на вставку в минуту. Выполнение 1-миллиметровых вставок в виде отдельных запросов приведет к нашему огромному серверу около 15 минут. Выполнение их в виде объемной вставки занимает около 18 секунд. Это ошеломляет, насколько быстрее загружаются массовые вставки, и вы также потребляете только 1 соединение в своем ящике mysql.
Массовые вставки очень похожи на обычную вставку, единственная разница в запросе находится в части VALUES. Если у вас обычно есть VALUES = ('abc', '123', 'abc'), например, у вас теперь будет ... VALUES = (('abc', '123', 'abcd'), ('cde' , '456', 'Д');
Надеется, что это помогает :)
Может быть дубликат http://stackoverflow.com/questions/1375501/how-do-i-throttle-my-sites- api-users – iblue
Вы ищете гарантию от случайного злоупотребления, «позвольте мне попробовать это» - нападения или злонамеренные «детишки сценариев»? – VolkerK