mysql查询优化任务
下面提到的是正在运行的查询和表mysql查询优化任务,mysql,Mysql,下面提到的是正在运行的查询和表 SELECT * FROM tfl_acquistions a, tfl_property_attributes b WHERE a.id = b.property_id AND attribute_id ='111' AND a.id ='53a8288c03a6823'; 表tfl_采集 CREATE TABLE `tfl_acquistions` ( `id` VARCHAR(32) NOT NULL DEFAULT '', `addres
SELECT * FROM
tfl_acquistions a,
tfl_property_attributes b WHERE
a.id = b.property_id AND
attribute_id ='111' AND
a.id ='53a8288c03a6823';
表tfl_采集
CREATE TABLE `tfl_acquistions` (
`id` VARCHAR(32) NOT NULL DEFAULT '',
`address` VARCHAR(100) NOT NULL DEFAULT '',
`city` VARCHAR(50) NOT NULL DEFAULT '',
`state` VARCHAR(10) NOT NULL DEFAULT '',
`zip` VARCHAR(10) NOT NULL DEFAULT '',
`county` VARCHAR(50) NOT NULL DEFAULT '',
`country` VARCHAR(50) NOT NULL DEFAULT '',
`status` ENUM('Y','N') NOT NULL DEFAULT 'Y',
`customer_case` VARCHAR(25) NOT NULL DEFAULT '',
`circle_id` INT(11) NOT NULL DEFAULT '0',
`visneta_id` VARCHAR(45) NOT NULL DEFAULT '',
`add_date` DATE NOT NULL DEFAULT '0000-00-00',
`apt_no` VARCHAR(10) NOT NULL DEFAULT '',
`profile_picture` VARCHAR(256) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
INDEX `address` (`address`),
INDEX `city` (`city`),
INDEX `state` (`state`),
INDEX `zip` (`zip`),
INDEX `status` (`status`),
INDEX `customer_case` (`customer_case`),
INDEX `circle_id` (`circle_id`),
INDEX `visneta_id` (`visneta_id`)
)
表tfl\u属性\u属性
CREATE TABLE `tfl_property_attributes` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`property_id` VARCHAR(32) NOT NULL,
`attribute_id` INT(11) NOT NULL DEFAULT '0',
`value` VARCHAR(500) NOT NULL DEFAULT '',
`update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`update_by` INT(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
INDEX `attribute_id` (`attribute_id`),
INDEX `property_id` (`property_id`),
INDEX `property_id_2` (`property_id`, `attribute_id`)
)
我的任务是优化这个查询,我是新的。。。。感谢您的帮助请尝试:
SELECT * FROM
tfl_acquistions a JOIN
tfl_property_attributes b ON a.id = b.property_id WHERE
b.property_id = '53a8288c03a6823' AND b.attribute_id = '111';
通过这种方式,MySQL将能够使用您在第二个表上创建的索引property\u id\u 2
(property\u id
,attribute\u id
)。目前,它不能使用任何索引
尝试将
EXPLAIN
关键字放在查询前面,查看MySQL计划如何执行它们,您将看到以前的查询没有使用任何索引。您检查过查询计划吗?您想要优化的是什么?它跑得慢吗?现在需要多长时间?您认为优化后应该做些什么?速度很慢,因为tfl_采集中有大量记录。这仍然可以,但您为什么要优化?因为页面加载很长时间以获取和显示记录,我认为优化器应该处理它。TBH我不认为查询本身有问题。但可能是从您正在呼叫和处理它的地方,如创建连接等。