![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
wufei1314a
这个作者很懒,什么都没留下…
展开
-
mysql强制使用索引与不使用索引
oracle可以强制使用索引来优化那些因为种种原因没走索引的SQLmysql支持吗?答案是肯定的mysql强制索引和禁止某个索引1.mysql强制使用索引:force index(索引名或者主键PRI)例如:select * from table force index(PRI) limit 2;(强制使用主键)select * from table原创 2016-06-24 15:54:37 · 2566 阅读 · 0 评论 -
mysql 单表多字段模糊查询解决方法
例如:user表中有id,name,age 三个字段,然后根据用户输入的查询请求,将输入的字串通过空格分割为多个关键字,再在这三个字段中查询包含这些关键字的记录。可目前遇到的问题是,这些关键字是可能存在于三个字段中的任意一个或者多个,但又要求三个字段必须包含所有的关键词。如果分别对每个字段进行模糊匹配,是没法实现所需的要求CONCAT(str1,str2,…)返回值:由原创 2016-07-22 15:18:26 · 1182 阅读 · 0 评论 -
SQL慢查询优化
表数据量比较大,sql很慢,该加的索引都加了,还是慢,偶然改变了下字段顺序,发现速度快了好多倍,看来where条件字段顺序真的很重要,按照范围大小,数据量大的放在前面,一层层过滤缩小范围是最优方式select uid, path, down, shareTime from grant where type = 'G' and sid in (34750,36297,37504,3750原创 2016-06-24 16:11:25 · 256 阅读 · 0 评论 -
sql删除一个月前的所有数据
delete from recycle where time 其中我的time字段是datetime类型一天 select * from T_news where datediff(day,addtime,getdate())=0三天 select * from T_news where datediff(day,addtime,getdate())= 0原创 2016-06-24 16:09:35 · 15900 阅读 · 0 评论 -
SQL排序查询优化
如果一个表数据量比较大,order by 的字段比较混乱,即使加了索引,还是会有点慢所以要尽量避免混乱字段的order by排序如果不可避免,就要看是否有其他字段与这个字段有一一对应关系,然后用其他字段来代替这个混乱字段,看下效果是否会好点,最后就是用绝招,联合索引了,记得最优左前缀一种排序是按照数据创建时间排序,这个就可以直接用主键id排序,因为他们是一一对应原创 2016-06-24 16:08:48 · 969 阅读 · 0 评论 -
Mysql中的TIMESTAMPDIFF和TIMESTAMPADD
1.TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出例子:select TIMESTAMPDIFF(day,'2015-09-29', '2015-08-30');2.TI原创 2016-06-24 16:07:15 · 256 阅读 · 0 评论 -
MySQL行级锁SELECT FOR UPDATE 和LOCK IN SHARE MODE区别
这两个常用于事务操作select for update用的多一些SELECT ... LOCK IN SHARE MODE在读取的行上设置一个共享模式的锁。这个共享锁允许其它session读取数据但不允许修改它。 行读取的是最新的数据,如果他被其它事务使用中而没有提交,读取锁将被阻塞知道那个事务结束SELECT ... FOR UPDATE在读取行上设置一个排他原创 2016-06-24 16:04:19 · 312 阅读 · 0 评论 -
MYSQL datetime设置默认值
使用DECIMAL代替FLOAT和DOUBLE存储精确浮点数如果用float简单的浮点数插入操作,居然会产生偏差,坑爹啊由于timestamp是从1970开始的,如果要记录出生日期,还是需要用datetime当然,在一般情况下,推荐使用timestampALTER TABLE `project` CHANGE `minage` `minage` DATETIME NOT原创 2016-06-24 16:03:36 · 3019 阅读 · 0 评论 -
mysql 浮点型坑
使用DECIMAL代替FLOAT和DOUBLE存储精确浮点数如果用float简单的浮点数插入操作,居然会产生偏差,坑爹啊原创 2016-06-24 16:02:02 · 621 阅读 · 0 评论 -
mysql 将一张表的数据插入到另一张表
1. 表结构完全一样 insert into 表1 select * from 表22. 表结构不一样(这种情况下得指定列名) insert into 表1 (列名1,列名2,列名3) select 列1,列2,列3 from 表2原创 2016-06-24 16:00:22 · 793 阅读 · 0 评论 -
mysql 字段避免赋值为0
Mysql数据库状态字段避免赋值为0为什么?程序经常会用到status = 1 怎么样 = 2 怎么样如果有0,那么有一种情况会复杂化,那就是status不判断的情况原创 2016-06-24 15:57:30 · 1479 阅读 · 0 评论 -
mysql 最大显示宽度关系
INT[(M)] [UNSIGNED] [ZEROFILL][(M)] : M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。那么这个显示宽度8和该类型实际能存诸的字节数3是个什么关系呢?一般而言,一个字节=8位。3字节能存2的8次方*3的数据值显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。如果原创 2016-07-25 10:30:46 · 1037 阅读 · 1 评论