|
|
|
| Дамп
CREATE TABLE IF NOT EXISTS `sh_advertising` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`place` enum('top','right','bottom','left') NOT NULL DEFAULT 'top',
`advertiser` enum('yandex','google','begun') NOT NULL DEFAULT 'yandex',
`hits` smallint(5) unsigned NOT NULL DEFAULT '0',
`viewed` smallint(6) NOT NULL DEFAULT '0',
`code` text NOT NULL,
`is_vis` char(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Реклама на сайте' AUTO_INCREMENT=1
|
Вопрос, собственно, в теме
Тип place - место отображения банера на сайте,
adveriser - рекламодатель | |
|
|
|
|
|
|
|
для: mihdan
(19.02.2010 в 16:08)
| | Запрос типа SELECT COUNT(*) AS q, place FROM sh_advertising WHERE ... GROUP BY place
Далее генерируешь 4 offset'а (для LIMIT) и запрос с UNION. | |
|
|
|
|
|
|
|
для: Тень&
(19.02.2010 в 17:38)
| | Я вот что думаю...
А не будет ли более расово верным в таблицах с превалирующей случайной выборкой поддерживать поле seq с последовательной нумерацией, для выполнения этой самой выборки по прямому уникальному ключу? | |
|
|
|
|
|
|
|
для: Trianon
(19.02.2010 в 17:45)
| | COUNT на MAX заменится, а LIMIT на WHERE? Плюс ответственность за возможные "дыры". Чем оно вернее? Не ощущаю. | |
|
|
|
|
|
|
|
для: Тень&
(19.02.2010 в 18:05)
| | LIMIT на WHERE IN($list)
Выборка по индексу пойдет.
Собственно, это только мысль... | |
|
|
|
|
|
|
|
для: Trianon
(19.02.2010 в 18:17)
| | В принципе, да. Только тогда по-хорошему надо будет работать с InnoDB. | |
|
|
|
|
|
|
|
для: Тень&
(19.02.2010 в 18:18)
| | Это в смысле - чтобы таблицу при удалениях инконсистентной не оставлять? | |
|
|
|
|
|
|
|
для: Trianon
(19.02.2010 в 18:20)
| | Да | |
|
|
|
|
|
|
|
для: Trianon
(19.02.2010 в 18:20)
| | Так на каком варианте остановиться? | |
|
|
|
|
|
|
|
для: Trianon
(19.02.2010 в 17:45)
| | Каким образом реализуется? | |
|
|
|
|
|
|
|
для: mihdan
(25.02.2010 в 11:02)
| | ответ был дан. | |
|
|
|
|
|
|
|
для: Trianon
(25.02.2010 в 11:17)
| | Модератор - почистил все неплохо ;) Остальное в уме | |
|
|
|