MySql
gang_strong
这个作者很懒,什么都没留下…
展开
-
mysql explain图解
转载 2020-01-02 14:46:16 · 217 阅读 · 0 评论 -
mysql between and 和大于等于、小于等于问题
table表end_time为索引列,当end_time在同一天时,两个sql索引生效,非同一天时,索引无效;explain select * fromtable where end_time >= '2019-04-22 00:00:00' and end_time <= '2019-04-22 23:59:59';explain select * from table...原创 2019-04-17 10:35:13 · 7668 阅读 · 0 评论 -
MySQL理解索引、添加索引的原则
转自:MySQL理解索引、添加索引的原则索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行,还需要考虑每次读入数据页的IO开销。而如果采取索引,则可以根据索引指向的页以及记录在页中的位置,迅速地读取目标页进而获取目标记录。大多数情况下都(默认)采用B树来构建索引。只是空间列类型的索引使用R-树,并且MEMORY表还支持转载 2017-09-01 15:04:30 · 355 阅读 · 0 评论 -
Mysql联合索引使用
联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。创建联合索引例子:CREATE TABLE `NewTable` (`i原创 2016-08-23 20:58:37 · 2261 阅读 · 1 评论 -
mysql事务
默认的mysql运行在autocommit模式下,这就意味着,当你执行完一个更新时,MySQL 将立刻将更新存储到磁盘上。如果设置mysql为非autocommit模式:1、setautocommit = 0;2、执行更新语句时,加上begin;例:begin;update tab set colum = 1 where id = 1; 执行完成后手动提交或回滚co原创 2017-05-05 17:42:40 · 295 阅读 · 0 评论 -
mysql组合索引与字段顺序
转自:sunada很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询语句中字段的顺序不符。看下面的例子:假设有一张订单表(orders),包含order_id和product_id二个字段。一共有31条数据。符合下面语句的数据有5条。执行下面的sql语句:转载 2017-01-09 15:26:03 · 11621 阅读 · 1 评论 -
MySql中UNION与UNION ALL的区别
SELECT ... UNION[ALL | DISTINCT] SELECT ... [UNION [ALL | DISTINCT] SELECT ...] UNION用于把来自许多SELECT语句的结果组合到一个结果集合中。列于每个SELECT语句的对应位置的被选择的列应具有相同的类型。(例如,被第一个语句选择的第一列应和被其它语句选择原创 2016-12-09 14:49:40 · 10170 阅读 · 0 评论 -
Mysql having用法
having子句对我们筛选分组后的数据非常方便语法:group by 字段 having 条件判断;注意:having后面跟的条件判断的字段必须是聚合函数返回的结果,否则sql会报错,例如:SELECT dept,COUNT(user_name) count_tmp FROM table GROUP BY dept HAVING coun原创 2016-12-19 16:28:06 · 604 阅读 · 0 评论 -
mysql union和union all用法
UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。union要求联合的两个表所要查找的数据列要一样多,如果一个表中没有另一个表的字段,可以用NULL代替UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。从效率上说,UNI原创 2016-12-09 14:48:47 · 1240 阅读 · 0 评论 -
mysql delete语句使用别名
mysql delele table语句使用别名:语法:delete t from table t where t.column = value;原创 2016-12-07 16:34:06 · 1683 阅读 · 0 评论 -
mysql on duplicate key update
注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法! 这个语法和适合用在需要 判断记录是否存在,不存在则插入存在则更新的场景.如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE;如果不会导致唯一值列重复的问原创 2016-08-25 15:43:13 · 335 阅读 · 0 评论 -
mysql 索引区别
一般索引与唯一索引:唯一性索引unique index和一般索引normal index最大的差异就是在索引列上增加了一层唯一约束。添加唯一性索引的数据列可以为空,但是只要存在数据值,就必须是唯一的。唯一索引与主键:主键是特殊的索引,只不过它不允许为空,并且在一张表里只能声明一组列为主键,主键可以被外键引用,mysql等数据库一般都自动给主键列建立索引来优化查询原创 2016-09-18 19:19:22 · 301 阅读 · 0 评论 -
关于mysql like 查询不区分大小写
mysql Like查询默认是不区分大小写的:如:select * from table t where t.colum1 like concat('%','a','%');select * from table t where t.colum1 like concat('%','A','%');两个sql查询结果相同;如果必要区分的话可以这样:select * from tab原创 2016-08-25 10:42:23 · 19168 阅读 · 0 评论 -
详解mysql 存储过程
mysql存储过程详解1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。一个存储过程是一个可编程的函数,它在数据库中创建并保存转载 2016-07-21 14:27:13 · 280 阅读 · 0 评论 -
MYSQL explain详解
explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。先解析一条sql语句,看出现什么内容EXPLAINSELECTs.uid,s.username,s.name,f.email,f.mobile,f.phone,f.postalcode,f.addressFROM uchome_space ASs,uchom转载 2016-07-19 14:49:06 · 248 阅读 · 0 评论 -
mysql中length函数和char_length的区别
length: 是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符;char_length:不管汉字还是数字或者是字母都算是一个字符;转载 2016-06-29 17:56:28 · 4889 阅读 · 0 评论