у меня есть эта таблица 500000 подрядMYSQL - заказ по индексированного столбца
CREATE TABLE IF NOT EXISTS `listings` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`source_id` int(10) unsigned NOT NULL,
`cat_id` mediumint(5) NOT NULL,
`title` mediumtext NOT NULL,
`views_point` int(10) unsigned NOT NULL DEFAULT '0',
`publishedon_hourly` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `views_point` (`views_point`),
KEY `listings` (`publishedon_hourly`,`published`,`cat_id`,`source_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED AUTO_INCREMENT=365513 ;
я хочу, чтобы сделать запрос, как этот
SELECT *
FROM listings
WHERE (
`publishedon_hourly`
BETWEEN UNIX_TIMESTAMP('2015-09-5 12:00:00')AND UNIX_TIMESTAMP('2015-10-5 12:00:00')) AND (published =1) AND cat_id
IN (1, 2, 3, 4, 5)
ORDER BY views_point DESC
LIMIT 10
Этот запрос через некоторое время работы, как я хочу точно (see this) , но после некоторых мнений это неверно, я искал в Интернете для решения, я нашел
это: http://venublog.com/2007/11/29/mysql-how-to-avoid-filesort/ и это: http://www.getsymphony.com/discuss/issues/view/657/ и я добавить индекс views_point
затем попробовал этот запрос
select t1.*
from listings t1
left outer join listings t2 on (t1.views_point=t2.views_point)
order by t1.views_point
limit 10
и этого объяснить
, но я не могу добавить это условие
`publishedon_hourly` BETWEEN UNIX_TIMESTAMP('2015-09-5 12:00:00') AND UNIX_TIMESTAMP('2015-09-5 12:00:00')) AND (published =1) AND cat_id = 5
я не знаете, какой я должен назначить (t1 или t2)?
в другой руке, что об этом способе
SELECT *
FROM listings
WHERE (
`publishedon_hourly` BETWEEN UNIX_TIMESTAMP('2015-09-5 00:00:00') AND UNIX_TIMESTAMP('2015-09-5 23:00:00'))
AND (published =1)
and views_point is not null
ORDER BY views_point DESC limit 20
если один не будет хорошо, может ли один скажите мне, пожалуйста, как большие блоги получить сообщения от ударов?
Почему на Земле вы хотите присоединиться к себе таблицу? – Victor
упростить OP, удалить неиспользуемые или не важные столбцы из 'CREATE TABLE' для OP, удалить все данные, кроме 5 записей с простым контентом. Объясните не то, что вы пытались во время других экспериментов, но как раз то, что ваш ожидаемый результат должен быть в соответствии с этими 5 примерами записей. – Alex
Мы не знаем, к какой из них вам следует добавить, если вы не объясните, какой результат вы пытаетесь получить. – Barmar