我的情況是這樣的: 我有一張表(phrases
),有大約500,000個條目。每個條目就像一個短語:Mysql匹配短語對句短語
Beating Around the Bush
Burst Your Bubble
Cry Wolf
Curiosity Killed The Cat
而且我有另一個表(full_sen
)4000個條目,每個條目在它短語句子。
我想匹配full_sen
表來找出哪些句子中有短語。
我需要頻繁運行,因爲兩個表都會定期有新的條目,而且我需要能夠快速運行的東西。
最簡單的查詢是走在50萬臺,並做了LIKE %phrase%
搜索 對full_sen
表,但需要永遠...
我不介意結合PHP或者Python是否會有所幫助;它不一定只是一個查詢。
full_sen CREATE TABLE `full_sen` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`sku` varchar(21) COLLATE utf8_unicode_ci DEFAULT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `full_sen_sku_670bbe26026365f4_uniq` (`sku`),
KEY `full_sen_e8701ad4` (`user_id`),
CONSTRAINT `full_sen_user_id_295adcd84efdd880_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5232 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
phrases CREATE TABLE `phrases` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date` date NOT NULL,
`serial_number` varchar(20) NOT NULL,
`title` varchar(250) NOT NULL,
`status_number` smallint(5) unsigned,
PRIMARY KEY (`id`),
UNIQUE KEY `serial_number` (`serial_number`),
KEY `phrases_status_number_5f42a821_uniq` (`status_number`),
FULLTEXT KEY `title` (`title`)
) ENGINE=InnoDB AUTO_INCREMENT=632144 DEFAULT CHARSET=latin
姓名和職位是我所談論的領域。
謝謝。
更新你所做的工作(代碼或查詢) –
請顯示確切的表格定義,以便我們可以看到列的長度和數據類型(在SHOW CREATE TABLE ...的輸出後面)。 – Binarus
@binarus,POSTED –