在项目中数据量小的情况下使用like查询速度还行,但是随着数据一天一天增加,再使用like进行模糊查询的时候速度上就会显得比较慢,现提供两套解决方案:
问题:
使用like查询效率很慢
select inner_id,title from news_info where title like ‘%齐鲁壹点%’;
方案一:
使用mysql数据库全文检索的功能;
1.首先我的表默认是:innoDB,这种表的类型不支持全文检索,所以要先改变其类型为MyISAM。
alter news_info title engine=MyISAM;
2.然后要在对应的要进行查找的字段上面建立全文检索的索引:
alter news_info add fulltext index(title);
如果要同时对多个字段进行检索可以这样:
alter news_info add fulltext index(title,source);
这样就可以去检索字段:
select inner_id,title from news_info where match(title) against(‘齐鲁壹点’) ;
或者多字段:
select inner_id,title from news_info where match(title,source) against(‘齐鲁壹点’);
问题来了,没有结果,经过查询得知MySQL全文检索默认不支持中文,且对英文检索时忽略大小写
需要修改表结构增加拼音字段,将索引字段中文转化成拼音,java方法比较好实现;
方案二:
使用缓存技术(redis);
1.将查询出来的结果放在redis缓存中;
2.查询时判断redis中是否有对应的数据,有的话直接返回,没有的话将数据执行1;
总结:
使用方案一需要修改现有的数据库表结构,有一定的风险性;
使用方案二不影响数据库表结果,修改查询方法即可,但是首次查询关键字的时候会比较慢,再次查询的时候查询速度会很快;使用这样方式可以将信息发布的时候直接放在redis里面,查询时直接查询redis

转载于:https://www.cnblogs.com/luweiwei/p/5320804.html

如何优化Mysql执行查询数据的速度相关推荐

  1. mysql2013年8月怎么打出来_2020年8月31日,上周完成了一个查询接口来检查mysql的数据,速度很慢,20200831,从,MySQL,中查,贼...

    2020-08-31 上周完成一个查询接口,从MySQL中查数据,速度贼慢, 原因是数据5000万+,所以真正接触优化的机会来了,所以决定好好研究一下,做一个记录. 事情是这样的,mysql表中只有两 ...

  2. 面试官问:在读多写少的情况下,如何优化 MySQL 的数据查询方案

    作者 | 面试官问     责编 | 张文 来源 | 面试官问(ID:interviewer_asked) 面试官问:假设你负责的某业务在双十一期间要搞运营活动,公司投入了大量的营销费用进行推广,此举 ...

  3. mysql怎么加快搜索_优化mysql数据库 提高检索速度

    在优化查询中,数据库应用(如MySQL)即意味着对工具的操作与使用.使用索引.使用EXPLAIN分析查询以及调整MySQL的内部配置可达到优化查询的目的. 任何一位数据库程序员都会有这样的体会:高通信 ...

  4. 优化mysql插入数据_优化MySQL插入方法的五个妙招

    以下是涉及到插入表格的查询的5种改进方法: 1)使用LOAD DATA INFILE从文本下载数据这将比使用插入语句快20倍. 2)使用带有多个VALUES列表的INSERT语句一次插入几行这将比使用 ...

  5. 如何加快mysql导入数据的速度

    我们在初始化数据时,如果数据量比较大的话,比如一个初始化 sql文件有3G,导入的速度一般比较慢,为了加速导入的速度,我们可以通过修改2个参数配置(针对存储引擎为innerdb): (1)临时关掉in ...

  6. MySQL 数据存储和优化------MySQL架构原理 ---- (架构---索引---事务---锁---集群---性能---分库分表---实战---运维)持续更新

    Mysql架构体系全系列文章主目录(进不去说明还没写完)https://blog.csdn.net/grd_java/article/details/123033016 本文只是整个系列笔记的第一章: ...

  7. MySQL百万数据优化总结 一

    测试的数据库配置 数据库配置阿里云RDS 存储类型 ESSD PL1 云盘 数据库内存 1024 M 数据库类型 MySQL8.0 CPU 1 核 MySQL8.0 中文参考手册:MySQL8.0中文 ...

  8. pymysq向mysql写数据 为什么本地无法查看_从运维角度浅谈MySQL数据库优化,中小企业DBA必会...

    原文:http://www.enmotech.com/web/detail/1/712/1.html(复制链接,打开浏览器即可查看原文) 作者:搬砖游击队 一个成熟的数据库架构并不是一开始设计就具备高 ...

  9. mysql 大量数据 更改索引_Mysql索引数据结构详解与索引优化

    本篇文章主要学习了MySQL的索引的数据结构的认识,做一个大概的了解即可. 一.索引 在关系数据库中,索引是一种单独的.物理的对数据库表中一列或多列的值进行排序的一种存储数据结构,它是某个表中一列或若 ...

最新文章

  1. 创建一个触发器新增字段的时候设置某个字段的值
  2. 比较某两个时间的时间戳相等
  3. LeetCode Remove Nth Node From End of List
  4. 恢复Cisco3640的IOS
  5. python基础(part14)--异常处理
  6. Spring 创建对象的方式
  7. 几个不错的开源的.net界面控件[转贴]
  8. 中国通用测试设备(GPTE)行业市场供需与战略研究报告
  9. 微信开发,自定义菜单不生效怎么办?重新关注也无效
  10. 想起纽微特期间的一次版本事故
  11. 台式计算机主板,台式电脑主板开机过程详解
  12. 2014全国计算机二级visual foxpro,全国计算机等级考试二级visual_foxpro试题
  13. 冯诺依曼体系结构及三级缓存
  14. java操作word替换文字和在固定位置插入表格
  15. 云计算是什么,云计算发展现状是什么?
  16. 动态规划——计算二项式系数问题
  17. 镜头的焦距与视场角简介!
  18. python实现Content-Type: multipart/form-data; boundary=xxx接口的调用
  19. ask信号调制matlab,基于Matlab的ASK数字调制系统仿真
  20. 离散数学 集合 思维导图

热门文章

  1. Flutter ClipPath 自定义CustomClipper 玩转不一样的背景图案
  2. Android FancyCoverFlow的使用实现图片画廊形式的呈现
  3. 性能测试和性能分析的基础概念
  4. 循环的中断操作(C#基础回顾03)
  5. Linux CentOS如何汉化系统
  6. 简答String类的操作特点以及static方法的注意事项
  7. caffe学习笔记教程
  8. SAP链接外部数据库的实现方法
  9. 想找C++开发职位必读的书,以及其他条件
  10. 6-4 单链表插入排序 (15分)