增强表MYSQL性能

时间:2017-01-11 08:44:18

标签: mysql sql database

我有一个包含以下方案的表:

CREATE TABLE `type_interests` (
  `id` int(11) NOT NULL,
  `interest_id` int(11) NOT NULL,
  `type_id` int(11) NOT NULL,
  `type` varchar(64) NOT NULL,
  `status` varchar(64) NOT NULL,
  `created_date` datetime NOT NULL,
  `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `notes` varchar(64) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `type_interests`
  ADD PRIMARY KEY (`id`),
  ADD KEY `interest_id` (`interest_id`,`type_id`),
  ADD KEY `interest_id_2` (`interest_id`);


ALTER TABLE `type_interests`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=31415;

ALTER TABLE `type_interests`
  ADD CONSTRAINT `type_interests_ibfk_1` FOREIGN KEY (`interest_id`) REFERENCES `interests` (`id`);

我在数据库中只有大约30,000条记录,但是使用该表的所有查询都耗费了大量时间,这是一个设计问题吗?请注意,type_id链接到多个表。

1 个答案:

答案 0 :(得分:1)

您应该正确索引表格,更多信息请点击此处:http://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html

这取决于您的服务器,您可以使用此脚本“调整”您的MySQL:https://www.howtoforge.com/tuning-mysql-performance-with-mysqltuner