首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

es搜索优化&mysql查询优化

这周优化了我们沙抖官网搜索功能,这个搜索目前是根据视频标题进行匹配,之前是对用户输入关键词进行了分词查找,比如用户输入【机器人】,这样的话,只要视频标题中有关键词任意一个字都会被搜到,比如含有【人...】字标题会展示出来,并可能排很靠前,所以我就对当前搜索进行了优化,现在搜索是优先进行相邻短语查询 match_phrase,如果相邻短语查询结果小于2个就进行普通分词查询,这个相邻短语查询是要求在请求字符串中所有查询项必须都在文档中存在...这样查询的话,标题中含有【机器人】结果肯定在前。...,加了普通索引和联合索引,现在我们一个视频数据表数据量是几百兆大小,根据视频行业进行查询时,mysql 响应速度在 600ms 左右,我对行业字段添加了普通索引,查询响应在 30 ms 左右,前后对比优化结果还是很明显...正如网友所说,如果正确设计并且使用索引 mysql 就是一辆兰博基尼,否则的话它就是人力三轮车。 ?

1.5K20

MySQL数据库查询

WITH ROLLUP:在所有记录最后加上一记录,显示select查询时聚合函数统计和计算结果 2、group by使用 group by可用于单个字段分组,也可用于多个字段分组 -- 根据gender...主查询和子查询关系: 子查询是嵌入到主查询中 子查询是辅助主查询,要么充当条件,要么充当数据源 子查询是可以独立存在语句,是一完整 select 语句 2、子查询使用 例1....); 3、小结 子查询是一个完整SQL语句,子查询被嵌入到一对小括号里面 数据库设计之三范式 1、数据库设计之三范式介绍 范式: 对设计数据库提出一些规范,目前有迹可寻的共有8种范式,一般遵守3范式即可...5、E - R模型介绍 E-R模型即实体-关系模型,E-R模型就是描述数据库存储数据结构模型。...E-R模型由 实体、属性、实体之间关系构成,主要用来描述数据库中表结构。

18.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

Mysql数据库MySQL数据库开发 36 军规

核心军规 尽量不在数据库做运算 控制单表数据量 纯INT不超过10M,含Char不超过5M 保持表身段苗条 平衡范式和冗余 拒绝大SQL,复杂事务,大批量任务 字段类军规 用好数值字段,尽量简化字段位数...%前缀模糊查询 Count不要使用在可Null字段上面 减少Count(*) Limit高效分页,SELECT * FROM message WHERE id > 9527 (or sub select...,尽量凌晨操作 约定类军规 隔离线上线下 禁止未经DBA认证查询 永远不在程序段显式加锁 表字符集统一使用UTF8MB4 统一使用UTF8MB4 for by 可能还有人不知道,MySQL 数据库字符集...因为MySQLutf8不是真正UTF-8,只支持最多三个字节字符。真正UTF-8可能会出现四个字节字符。...MySQL 从来没有修复这个 Bug,而是使用另外解决方法:真正UTF-8字符集用 utf8mb4名字提供。

5.3K20

MySQL怎样处理排序⭐️如何优化需要排序查询

前言在MySQL查询中常常会用到 order by 和 group by 这两个关键字它们相同点是都会对字段进行排序,那查询语句中排序是如何实现呢?...show variables like 'max_length_for_sort_data'当查询需要字段长度小于 max_length_for_sort_data 时,则会将查询需要所有字段放入sort_buffer...中,然后对需要排序列进行排序,最后返回结果当查询需要字段长度大于 max_length_for_sort_data 时,只会将需要排序字段和主键值放入sort_buffer中,等到排序后再去查询聚簇索引获取需要查询列...,通过索引来保证有序当使用索引无序时则会使用sort_buffer进行排序,当查询字段长度未超过限制时,sort_buffer中每条记录会存储需要查询列如果超过限制,则sort_buffer只会存储需要排序列和主键值...避免使用磁盘页辅助排序当无法使用索引时可以调整sort buffer 或 max_length_for_sort_data(谨慎)最后(不要白嫖,一键三连求求拉~)本篇文章被收入专栏 由点到线,由线到面,构建MySQL

10721

MySQL数据库】详细讲解MySQL查询

图片多表查询⭐多表关系在项目开发中,在进行数据库表结构设计时,会根据业务需求以及业务模块之间关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在各种联系,基本分为以下三种一对多(多对一...varchar(10) comment '课程名称') comment '课程表';​insert into course values (null,'java'),(null,'php'),(null,'mysql...就对应一个用户基本信息图片以图形化方式展示图片⭐多表查询语法select * from 表1,表2,……;单表查询图片多表查询图片我们发现,最终结果有16,但是是为什么呢图片 因为44=16 course...中有4,student中有4,44=16 这种现象称为笛卡儿积️‍笛卡儿积是指在数学中,集合A和集合B所有的组成情况 图片 当前就是两张表所有的组成情况 但是在设计开发中,我们不需要这么多情况,...,或者文章有问题,欢迎大家在评论区讨论,指正我正在参与 腾讯云开发者社区数据库专题有奖征文。

25940

mysql数据库查询数据语句怎么写_mysql数据库多表查询

distinct from 3、排序查询(order by) 升序:asc 降序:desc 降序排列命令:select from order...要求查询一个学生总成绩。我们根据学号将他们分为了不同组。...命令:mysql>select id, Sum(score) from result group by id; 多表查询 一、等值查询 现在有两个表: 现在要查询年龄小于20岁学生不及格成绩...: 可见等值查询效率太低 二、连接查询 1、外连接查询 (1)左外连接查询 假设我们依旧使用是上面的两个表,任然查询年龄小于20岁学生不及格成绩 我们利用左外连接查询,先将学生表中所有年龄小于...如图: 我们发现过滤出来表进行匹配只有两满足条件(红色代表条件满足),但最后结果却是: 左表不匹配数据改为空,右表过滤出来数据都要存在。

29.8K20

Mysql查询记录在分页第几页

实践中我们会遇到这样问题,知道某记录id,然后需要判断此条记录如果按照id进行排序分页,此条记录在第几页。今天这篇文章为大家提供一个思路。...,即第2页第1记录(从0开始) int index = count%pageSize; 多维度排序定位 上面通过简单ID进行排序还是比较好解决,那么如果现在查询记录排序维度不仅仅是ID,...基本sql语句如下: select id, age from user order by age desc,id desc; 此时我们知道某id为5,age为18记录,如何确定出此条记录在多条件排序中位置呢...当然,可以通过复杂关联查询或子表查询来实现,这里通过另外一种方式,就是再查询一下age相同,并且id大于当前用户记录条数: select count(id) from user where age...此种方案虽然查询了两次数据库,如果很好建立索引,比关联查询或子查询要方便、简洁和高效一些。 小结 以上是在实践中遇到类似问题两个思考维度,希望能给大家带来一个突破,同时也希望大家提供更好方案。

2.2K20

MySQL数据库开发 36 军规!

来自:www.slideshare.net/mysqlops/mysql-9838563 来自一线实战经验,主要针对DBA和后端开发人员,总是在灾难发生后,才想起容灾重要性;总是在吃过亏后,才记得曾经有人提醒过...核心军规 尽量不在数据库做运算 控制单表数据量 纯INT不超过10M,含Char不超过5M 保持表身段苗条 平衡范式和冗余 拒绝大SQL,复杂事务,大批量任务 字段类军规 用好数值字段,尽量简化字段位数...把字符转化为数字 优先使用Enum或Set 避免使用Null字段 少用并拆封Text/Blob 不在数据库中存图片 索引类军规 谨慎合理添加索引 字符字段必须建立前缀索引?...%前缀模糊查询 Count不要使用在可Null字段上面 减少Count(*) Limit高效分页,SELECT * FROM message WHERE id > 9527 (or sub select...,尽量凌晨操作 约定类军规 隔离线上线下 禁止未经DBA认证查询 永远不在程序段显式加锁 表字符集统一使用UTF8MB4 往期干货推荐 1.

2.2K50

MYSQL数据库-复合查询

MYSQL数据库-复合查询 零、前言 一、基本查询 二、多表查询 三、自连接 四、子查询 1、单行子查询 2、多行子查询 3、多列子查询 3、在from子句中使用子查询 五、合并查询 1、union 2...、union all 零、前言 本章主要讲解学习MYSQL数据库复合查询,前面我们讲解mysql查询都是对一张表进行查询,在实际开发中这远远不够 一、基本查询 示例: 查询工资高于500...worker,给自己表起别名,因为要先做笛卡尔积,所以别名可以先识别 四、子查询查询是指嵌入在其他sql语句中select语句,也叫嵌套查询 1、单行子查询 返回一行记录查询...:显示工资比部门30所有员工工资高员工姓名、工资和部门号 any关键字:显示工资比部门30任意员工工资高员工姓名、工资和部门号(包含自己部门员工) 3、多列子查询 单行子查询是指子查询只返回单列...,单行数据;多行子查询是指返回单列多行数据,都是针对单列而言,而多列子查询则是指查询返回多个列数据查询语句 示例:查询和SMITH部门和岗位完全相同所有雇员,不含SMITH本人 3、在from

13.2K30

数据库MySQL查询优化

MySQL发送查询请求,到底做了什么工作? 下图是MySQL查询执行流程图: ? •客户端发送一查询给服务器。•服务器先检查查询缓存,如果命中了缓存,则立刻返回查询在缓存中结果。...•服务端进行SQL解析、预处理、再由优化器生成对应执行计划。•MySQL根据优化器生成执行计划,调用存储引擎API来执行查询。•将结果返回给客户端。 是什么导致MySQL查询变慢了?...对于MySQL,最简单衡量查询开销三个指标如下: •响应时间•扫描行数•返回行数 没有哪个指标能够完美地衡量查询开销,但它们大致反映了MySQL在内部执行查询时需要访问多少数据,并可以大概推算出查询运行时间...注:索引是要另开辟一块空间存储,所以不能不要钱滴都加索引。 2.关联子查询 MySQL查询实现是非常糟糕。...就要扫描100654+5数据,然后丢弃100654,仅仅去最后5

13.4K10

MySQL数据库开发 36 军规

MySQL数据库开发 36 军规 标签:数据库 核心军规(5个) 尽量不在数据库做运算。 控制单表数量:行不超过500W,超出分表;列不超过50个,超过拆表。...(节省空间,提升效率) 优先使用Enum或者Set类型 避免字段值为NULL(NULL字段很难查询优化、NULL字段索引需要额外空间、NULL字段复合索引无效) 尽量少用text.../blob类型(尽量使用varchar代替text字段),需要时候请拆表 不在数据库存图片,请存图片路径 索引类规约(5个) 合理使用索引(改善查询,减慢更新,索引一定不是越多越好) 字符字段必须建前缀索引...只能在一个cpu运算,大语句拆小语句,减少锁时间,一大SQL可以堵死整个库) 简单事务(事务时间尽可能短,坏代码案例:上传图片事务) 避免使用trigger/func(触发器、函数不用,由客户端程序取而代之...where id >xxx limit 11 使用union all替代union(union有去重开销) 发生高并发时,数据库少用两个表以上join 使用group by 去除排序加快效率 例如:

13310

mysql查找最后一记录_mysql查询记录总数

大家好,又见面了,我是你们朋友全栈君。 首先要确定什么是最后一。 是编辑时间最新为最后一,还是某个字段数字最大未最后一。...比如以时间最大为最后一,则将符合条件资料都筛选出来,再按时间排序,再取一笔资料。...分组取最新记录(整条记录) mysql取分组后最新记录,下面两种方法.一种是先筛选 出最大和最新时间,在连表查询.一种是先排序,然后在次分组查询(默认第一),就是最新数据了 select...* from table1 order by id desc dlimit n;//倒序排序,取前n行 id为自增形式 5、查询记录($id)下一记录 select * from table1...where id>$id order by id asc dlimit 1 6、查询记录($id)上一记录 select * from table1 where id<$id order by

6.6K20

MySQL数据库——连接查询

概述: 连接查询作用将多张表进行内容上连接,查看数据时可以同时看到多张表多个数据 连接查询分类 内连接查询 左连接查询 右连接查询 自连接查询 语法 #内连接 SELECT * FROM...inner join 实现多表查询查询共有记录。...SELECT * FROM 表1 inner join 表2 on 表1.字段=表2.字段 左连接查询 left join 以左表为主,查询右表数据。若右表不存在数据,则返回null。...SELECT * FROM 表1 left join 表2 on 表1.字段=表2.字段 右连接查询 right join 以右表为主,查询左表数据。若左表不存在数据,则返回null。...SELECT * FROM 表1 right join 表2 on 表1.字段=表2.字段 自连接查询 inner join 左表和右表是同一个表,查询两个表中数据。

53.8K85
领券