У меня есть таблица, структура которой выглядит следующим образом:
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`ttype` int(1) DEFAULT '19',
`title` mediumtext,
`tcode` char(2) DEFAULT NULL,
`tdate` int(11) DEFAULT NULL,
`visit` int(11) DEFAULT '0',
PRIMARY KEY (`id`),
KEY `tcode` (`tcode`),
KEY `ttype` (`ttype`),
KEY `tdate` (`tdate`)
ENGINE=MyISAM
У меня есть два запроса к x.php, такие же как:
SELECT * FROM table_name WHERE id='10' LIMIT 1
UPDATE table_name SET visit=visit+1 WHERE id='10' LIMIT 1
Моя первая проблема заключается в том, чтовызывает ли обновление 'посещение' в таблице переиндексацию и снижение производительности или нет?Обратите внимание на то, что «посещение» не является ключевым.
Вторым методом может быть создание новой таблицы, содержащей «посещение», как показано ниже:
'newid' int(10) unsigned NOT NULL ,
`visit` int(11) DEFAULT '0',
PRIMARY KEY (`newid`),
ENGINE=MyISAM
Таким образом, выбирая
SELECT w.*,q.visit FROM table_name w LEFT JOIN table_name2 q
ON (w.id=q.newid) WHERE w.id='10' LIMIT 1
UPDATE table_name2 SET visit=visit+1 WHERE newid='10' LIMIT 1
Является ли второй метод предпочтительным по сравнению с первым методом?Какой из них будет иметь лучшую производительность и будет быстрым?
Примечание: все запросы sql будут выполняться PHP (команда mysql_query).Также мне нужны первые индексы таблиц для других запросов на других страницах.