随笔分类 -  Mysql

摘要:select * from t1 as a join t2 as b on a.id = b.id where CONCAT(a.name,b.name) like '%测试%' 阅读全文
posted @ 2019-01-31 10:26 热敷哥 阅读(300) 评论(0) 推荐(0)
摘要:order by case when a.ShopNumber in(1,2,3) then 0 else 1 end 阅读全文
posted @ 2019-01-30 15:04 热敷哥 阅读(1564) 评论(0) 推荐(0)
摘要:1.按 status 值 2 5 3 的顺序排序,值相同则按修改时间排序 order by FIELD(status,2,5,3),a.ModifyTime desc 2.将 status = 3 的记录排在最后,其余的记录按修改时间排序 order by FIELD(status,3),a.Mod 阅读全文
posted @ 2018-09-12 17:48 热敷哥 阅读(1670) 评论(0) 推荐(0)
摘要:update table a, table b set a.filed1= b.field2, a.field2= b.field1where a.id = b.id 阅读全文
posted @ 2018-09-12 16:28 热敷哥 阅读(10985) 评论(3) 推荐(2)
摘要:用过Mysql的都知道她有一个很好的实现行转列功能的函数group_concat函数,非常方便 点击(此处)折叠或打开 SELECT * FROM group_test; SELECT id, GROUP_CONCAT(sub_id) FROM `group_test` GROUP BY id; 点 阅读全文
posted @ 2018-06-11 19:50 热敷哥 阅读(1422) 评论(0) 推荐(0)
摘要:概述: 交代一下背景,这算是一次项目经验吧,属于公司一个已上线平台的功能,这算是离职人员挖下的坑,随着数据越来越多,原本的SQL查询变得越来越慢,用户体验特别差,因此SQL优化任务交到了我手上。 这个SQL查询关联两个数据表,一个是攻击IP用户表主要是记录IP的信息,如第一次攻击时间,地址,IP等等 阅读全文
posted @ 2018-06-05 16:54 热敷哥 阅读(31364) 评论(3) 推荐(2)
摘要:对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。下面用几个例子对比查 阅读全文
posted @ 2018-06-05 14:28 热敷哥 阅读(25292) 评论(0) 推荐(0)
摘要:测试于:MySQL 5.5.25 当前测试的版本是Mysql 5.5.25只有BTree和Hash两种索引类型,默认为BTree。Oracle或其他类型数据库中会有Bitmap索引(位图索引),这里作为比较也一起提供。 BTree索引 BTree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用 阅读全文
posted @ 2018-06-05 14:21 热敷哥 阅读(1051) 评论(0) 推荐(0)
摘要:OR、in和union all 查询效率到底哪个快。 网上很多的声音都是说union all 快于 or、in,因为or、in会导致全表扫描,他们给出了很多的实例。 但真的union all真的快于or、in?本文就是采用实际的实例来探讨到底是它们之间的效率。 1:创建表,插入数据、数据量为1千万【 阅读全文
posted @ 2018-06-05 13:52 热敷哥 阅读(639) 评论(0) 推荐(0)
摘要:使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息 其中最重要的字段为:id、type、key、rows、Extra 各字段详解 id select查询的序列号,包含一组数字 阅读全文
posted @ 2018-06-05 10:26 热敷哥 阅读(161) 评论(0) 推荐(0)
摘要:需求是 查询每个班 年龄最小的那个人 ,需要显示如下: SQL 语句如下: select id,SUBSTRING_INDEX(GROUP_CONCAT(age order by age),',',1) as age,SUBSTRING_INDEX(GROUP_CONCAT(username ord 阅读全文
posted @ 2018-05-19 19:31 热敷哥 阅读(225) 评论(0) 推荐(0)
摘要:1 、 查看当天日期 select current_date(); 2、 查看当天时间 select current_time(); 3、查看当天时间日期 select current_timestamp(); 4、查询当天记录 select * from 表名 where to_days(时间字段 阅读全文
posted @ 2018-01-09 09:23 热敷哥 阅读(297) 评论(0) 推荐(0)
摘要:[转发] 导读 我们在向数据库里批量插入数据的时候,会遇到要将原有主键或者unique索引所在记录更新的情况,而如果没有主键或者unique索引冲突的时候,直接执行插入操作。 这种情况下,有三种方式执行: 直接 直接每条select, 判断, 然后insert,毫无疑问,这是最笨的方法了,不断的查询 阅读全文
posted @ 2017-11-21 23:42 热敷哥 阅读(2562) 评论(0) 推荐(0)
摘要:1 前言 数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。T3,T4以此类推。下面以SQL Server(2005)为例。 1 前 阅读全文
posted @ 2017-09-23 17:30 热敷哥 阅读(403) 评论(0) 推荐(1)