[英]How to fasten execution for table having 100 million record for like query
[英]How to Improve a MySQL Query on a 1 Million Record Table
我有100万条记录的MySQL表,其中有7列。 我有一个主键和一个全文索引列。 该表代表一个字典(磁盘上的大小约为300 MB)。
这些列是:
'id', 'int(11)', 'NO', 'PRI', NULL, 'auto_increment'
'writtenForm', 'varchar(255)' - Fulltext index
'languageIdentifier', 'varchar(255)'
'partOfSpeech', 'varchar(255)'
'_index', 'int(11)'
'writtenText', 'longtext'
'lexiconid', 'varchar(255)'
当我运行此查询时:
select * from tablename where writtenForm = 'herstellen'
我在4.5秒内得到了结果。 对我来说太多了,因为此表很简单,查询没有联接,因此我在PC上本地运行它。
我注意到全文索引没有排序规则。 这可能是个问题吗? 如果是,请让我知道如何将排序规则添加到索引。
我还注意到,我对表本身所做的任何更改(添加列,删除列)都需要5分钟以上(最后一列删除大约需要15分钟)。
由于您使用的是=而不是全文搜索,您可以:
a)删除全文索引并用常规索引替换
要么
b)在全文索引旁边添加一个常规索引
我怀疑您的查询正在执行全表扫描,而不使用全文索引,因为您实际上并未在进行MATCH全文搜索
MySQL Workbench还包括一个Visual Explain图,以帮助解决此类问题。 有关更多信息,请参见标题为“ 使用Visual Explain提高查询性能 ”的相关教程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.