В общем вопрос, наверное, больше организационный Подскажите, плиз, как будет более оптимальнее с точки зрения производительности, наверное В общем есть у меня набор (практически неограниченныый) всяческой техники которую продаю. Начиная от гвоздей (грубо) заканчивая (грубо) самолетами. Каждая из единица, естественно, может обладать произвольным набором характеристик, некоторые из которых могут, естественно, пересекаться. Так вот, суть проблемы: как правильнее реализовать такую структуру, вот так: 1. id, idDevice, char1, char1, char3, ..., charn естественно, что набор полей в большинстве случаев будет большим чем необходимо. Плюс - возникают неудобства: необходимо помнить, что же каждая характеристика (charx) значит для определенного девайса. И второй подход, который я придумал. Реализуется он структурой из двух таблиц, первая - описание характеристики: 1. id, name, fulllName, ei (типа единица иизмерения) и вторая, очень похожа на описанную ранее: 2. id, idDevice, idChar (связь с предыдущей таблицей), value Второй способ мне больше по душе, т.к. не составит никаких проблем завести еще одну табличку и объединить схожие характеристики в группы и ваабще мне кажется более удобным. и получается, что в результате реализации первой схемы, мы будем иметь очень "широкую" таблицу, но имеющую в каждой записи кучу пустых полей. Реализуя вторую схему, мы получаем очень гибкий механизм, но получаем очень "длинную" таблицу характеристик. Подскажите, плиз, какая из схем будет более оптимальна? Заранее спасибо
я так и думал.. но меня смущает, что оч длинная табличка будет. Как начнет мне по пол часа запросы выполнять....
У меня табличка есть, в реальном проекте - 48 полей, из них штук 5 varchar 255 длиной, штук 20 - varchar от 50 до 150 длиной. Записей - около 20 000. Общий вес базы около 100 мегабайт (основной вес базы (90-95%) - эта таблица). В день около 200 тысяч запросов к этой таблице. Летает, аки лебедь. Время генерации страниц - в пределах 2 секунд.
чёртов мастерхост. Хостер - отличный. Ни глюков, ни тормозов - ничего плохого за всё время хостинга у них не было. Один раз было - у них добрые електрики из МосЭнерго перепутали кабеля и отключили их здание. Бесперебойников хватило на полдня. Ещё полдня они монотонно отвечали по телефону - "мы работаем над этим вопросом, скоро должны включить". Всё. Больше никаких затыков с 2005 года не было. Но техподдерка у них - не просто никакая, она отсутствует. Мальчики по объявлению, нифига вообще не знающие. Умеют только реагировать на ключевые слова и зачитывать текст с бумажки по этим ключевым словам.
Что-то либо с каналом, либо с dns-ом. Попробуй скриптом попинговать сервак, с замером времени. И посмотри на результаты. По ним можно понять, в чём причина.
100 мегабайтная таблица при нескольких параллельных запросах в секунду? 2 секунды - это летает. Когда нагрузка не пиковая - время генерации страницы от 0,02 до 0,1 секунды.
Уверен, что это кривое решение. Но пока нет ни времени, ни желания переделывать. Да и - "работает? Не трожь!".
Раз с основным вопросом разобрались, под шумок оффтопный вопрос. Я не понимаю сути задавать полю varchar определённую длинну. varchar ведь сам подстраивает длинну. "вася" в поле varchar(5) и varchar(255) будет рассматриваться как одно и тоже. Расходов будет одинакого - 5 байтов... В чём разница?