Я сейчас программирую проект с бизнес-базой данных более 20 миллионов записей.Это структура таблицы:
CREATE TABLE IF NOT EXISTS `business` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`rdate` datetime NOT NULL,
`valid` int(1) NOT NULL,
`visible` int(1) NOT NULL,
`lockItem` int(1) NOT NULL,
`parent` int(10) NOT NULL,
`titleENG` varchar(254) COLLATE utf8_bin NOT NULL,
`address` varchar(254) COLLATE utf8_bin NOT NULL,
`city` varchar(254) COLLATE utf8_bin NOT NULL,
`state` varchar(254) COLLATE utf8_bin NOT NULL,
`zipCode` varchar(254) COLLATE utf8_bin NOT NULL,
`country` varchar(254) COLLATE utf8_bin NOT NULL,
`webAddress` varchar(254) COLLATE utf8_bin NOT NULL,
`phone` varchar(254) COLLATE utf8_bin NOT NULL,
`fax` varchar(254) COLLATE utf8_bin NOT NULL,
`contact_name` varchar(254) COLLATE utf8_bin NOT NULL,
`contact_title` varchar(254) COLLATE utf8_bin NOT NULL,
`contact_gender` enum('','male','female') COLLATE utf8_bin NOT NULL,
`company_employee` varchar(254) COLLATE utf8_bin NOT NULL,
`text` text COLLATE utf8_bin NOT NULL,
`bigPic` varchar(254) COLLATE utf8_bin NOT NULL,
`keywords` varchar(254) COLLATE utf8_bin NOT NULL,
`lowerTitle` varchar(256) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`),
KEY `visible` (`visible`),
KEY `parent` (`parent`),
KEY `valid` (`valid`),
KEY `titleENG` (`titleENG`),
KEY `state` (`state`),
KEY `country` (`country`),
KEY `city` (`city`),
KEY `keywords` (`keywords`),
FULLTEXT KEY `titleENG_2` (`titleENG`),
FULLTEXT KEY `lowerTitle` (`lowerTitle`),
FULLTEXT KEY `phone` (`phone`),
FULLTEXT KEY `city_2` (`city`),
FULLTEXT KEY `state_2` (`state`),
FULLTEXT KEY `business_search` (`lowerTitle`,`phone`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=12409005 ;
Некоторые из моих запросов, которые я делаю через полный текст, задаются вопросом, могу ли я использовать через LIKE и использовать функции lower () и т.д. ', но с высокой скоростью.1005 * Может кто-нибудь дать мне несколько советов?