Все-таки, mysql - это SQL-интерфейс к grep.
Я вытащил из лога mysql все SELECT'ы. Кто скажет, что это просто - пусть поищет в документации описание формата лога.
Теперь (блин!!!) нужно привести все селекты к плейсхолдерному виду -
из
SELECT * FROM ModelTypes WHERE ID=1413
SELECT * FROM Models WHERE ID=206
SELECT * FROM Marks WHERE ID=47
сделать
SELECT * FROM ModelTypes WHERE ID=? : 1413
SELECT * FROM Models WHERE ID=? : 206
SELECT * FROM Marks WHERE ID=? : 47
все осложняется наличием конструкций типа
SELECT SQL_CACHE Main.ZoneId, Main.UnitId, Main.BannerId, Main.Weight, Main.EvenDistribution
, Main.WeekDays, Main.DayTimeBegin, Main.DayTimeEnd, Main.IsExclusive, Main.KeyWords
AS RefererWords, Main.InputMode AS RefererMode, Main.UnitKeyWords AS UnitWords, Main.Width, Main.
Height, Shows.ShowsUsed, Shows.ShowsBought, Clicks.ClicksUsed, Clicks.ClicksBought FROM FastBannerLookup AS Main LEFT JOIN AdUnitShows AS Shows ON (Main.UnitId = Shows.UnitId) AND (Shows.Canceled = 0) LEFT JOIN AdUnitClicks AS Clicks ON (Main.UnitId = Clicks.UnitId) AND (Clicks.Canceled = 0) WHERE
((BrowserFlags & 256) <> 0) AND ((WeekDays & 16) <> 0) AND (Main.DayTimeBegin <= 36000) AND (36000 < Mai
n.DayTimeEnd) AND (Main.BeginDate <= 1209708000) AND (1209708000 < Main.EndDate) AND ( (Main
.Pattern IS NULL) OR (LENGTH(Main.Pattern) = 0) OR ('' REGEXP Main.Pattern) ) AND
((Shows.ShowsBought IS NULL) OR ((Shows.ShowsBought >= 0) AND (Shows.ShowsBought > Shows.ShowsUsed))) AND
((Clicks.ClicksBought IS NULL) OR ((Clicks.ClicksBought >= 0) AND (Clicks.ClicksBought > Clicks.ClicksUsed)))
AND (((Main.ReferrersAmount > 0) AND (Main.InputMode IS NOT NULL)) OR (Main.ReferrersAmount = 0)) ORDER BY Main.IsExclusive DESC, Main.Weight DESC
которых тоже нужно преобразовывать. Блин. Вашумать. Ничего, если я ЭТО сделаю, я с заказчика потребую бабла. Штуку баксов, не менее.