我有一个需要2秒以上的查询。查询需要两秒钟以上
这里是我的表模式:
CREATE TABLE `vouchers` (
`id` int(11) NOT NULL,
`voucher_dealer` int(11) NOT NULL,
`voucher_number` varchar(20) NOT NULL,
`voucher_customer_id` int(11) NOT NULL,
`voucher_date` date NOT NULL,
`voucher_added_date` datetime NOT NULL,
`voucher_type` int(11) NOT NULL,
`voucher_amount` double NOT NULL,
`voucher_last_debt` double NOT NULL,
`voucher_total_debt` double NOT NULL,
`voucher_pay_method` int(11) NOT NULL,
`voucher_note` text NOT NULL,
`voucher_inserter` int(11) NOT NULL
)
主键是id
并自动递增。 该表有超过100万行。
查询看起来是这样的:
select *
from vouchers
where voucher_customer_id = **
and voucher_date between date and date
,有时它看起来像这样:
select sum(voucher_amount)
from vouchers
where voucher_customer_id=**
and voucher_date> date limit 1
有没有一种方法,以加快我的查询?
你对'voucher_customer_id'和'voucher_date'指标?如果对列进行索引,则使用列查找数据会更快。 –
由于您总是查询相同的两个字段,组合索引会大幅加快速度:ALTER TABLE vouchers ADD INDEX idx_customer_date(voucher_customer_id,voucher_date);在... id和... date上设置两个不同的索引不会有太大的帮助。 – colburton
非常感谢你的男人..现在它的粘性低于0.05秒再次感谢男人 –