У меня есть вопрос о базах данных MYSQL, улучшит ли сброс первичный ключ? Я использую автоинкремент в качестве ключа (NumID), см. Ниже, но сейчас это число составляет 42 миллиона, и в последнее время я замечаю повышение и понижение производительности. Размер базы данных составляет 8 ГБ, и в настоящее время существует 450 000 строк. Я регулярно сбрасываю большие разделы этой базы данных (старые даты).
CREATE TABLE IF NOT EXISTS `Count1` (
`NumID` int(11) NOT NULL AUTO_INCREMENT,
`MyUser` varchar(100) DEFAULT NULL,
`MYitID` varchar(100) DEFAULT NULL,
`APICalls` int(15) DEFAULT NULL,
`ResultID` longtext,
`ResultIDtotal` varchar(100) DEFAULT NULL,
`Time` varchar(20) DEFAULT NULL,
`iTime` varchar(50) DEFAULT NULL,
`Date` varchar(30) DEFAULT NULL,
`Record` varchar(30) DEFAULT NULL,
`Notes` varchar(200) NOT NULL,
PRIMARY KEY (`NumID`),
KEY `MyitID` (`MyitID`),
KEY `Date` (`Date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=42386041 ;
заранее спасибо
Сброс AUTO_INCREMENT
будет иметь мало влияния на производительность. Вы бы немного уменьшили размер хранилища поля путем сброса.
Лучшее использование вашего времени работает EXPLAIN
на ваших общих утверждений и убедитесь, что у вас есть правильный индекс, где вы пытаетесь выбрать конкретные записи.
Других решений пока нет …