CREATE TABLE IF NOT EXISTS `gsm_smslog220717`
(
`pdsid` int(11) NOT NULL auto_increment,
`affiliateid` varchar(20) character set latin1 default NULL,
`bpushno` longtext character set latin1,
`psms` varchar(1) character set latin1 default NULL,
`credits` varchar(5) character set latin1 default NULL,
`mobileno` longtext character set latin1,
`dlrid` longtext character set latin1,
`dr` varchar(50) character set latin1 default NULL,
`op` varchar(10) character set latin1 default NULL,
`dtoken` varchar(200) character set latin1 default NULL,
`sid` varchar(15) character set latin1 default NULL,
`char` varchar(5) character set latin1 default NULL,
`gid` varchar(20) character set latin1 default NULL,
`msg` varchar(700) character set latin1 default NULL,
`status` varchar(1) character set latin1 default NULL,
`time` varchar(10) character set latin1 default NULL,
`subdt` date default NULL,
PRIMARY KEY (`pdsid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2444466;
SELECT Query:
select *
from gsm_smslog220717
where affiliateid ='hn137754388'
&& subdt = '2017-08-21'
&& status= 's'
How can I improve speed of query? In one second many insert queries are also run on live.
Please help to create best index for this query.
Best Answer
MyISAM and Many insert queries ?
I definitely recommend to use InnoDB instead of MyISAM. (Don't forget to create backup before change storage)
If most of your queries for gsm_smslog220717 table like that, you can create composite index for speed up Select query.