今天这篇文章源于上周在工作中解决的一个实际问题,它是个比较普遍的问题,无论做什么开发,估计都有遇到过.具体是这样的,我们有一份高校的名单(2657个),需要从海量的文章标题中找到包含这些高校的标题,其实就是模糊查询(关注公众号 渡码, 回复关键词 trie 获取源码).对应的伪代码如下 selected_titles = [] for 标题 in 海量标题: for 高校 in 高校名单: if 标题.contains(高校): selected_titles.add(标题) break 如果是…
优化关联查询 如果想要优化使用关联的查询,我们需要特别留意以下几点: 确保ON或者USING子句中的列上有索引.在创建索引的时候需要考虑到关联的顺序.当表A和表B用列c关联的时候,如果优化器的关联顺序是B.A,那么就不需要在B表的对应列上建索引.除非有其他理由,否则只需要在关联顺序的第二个表的对应列上创建索引,没有用的索引只会带来额外的负担. 确保任何的GROUP BY 和 ORDER BY 中的表达式只涉及一个表中的列,这样MySQL才有可能使用索引来优化这个过程. 当升级MySQL的时候需要…