使用left join代替not in

2018-9-11 liyangweb.com 李杨 MySQL

有这样的需求:查找在A表中存在,而在B表中不存在的数据,首先我们想到的应该是使用not in来查询。

构建的sql是这样的:

select * from a where a.username not in (select username from b)

看上去这个SQL并没有什么不妥,事实上,当两张表的数据量都不大情况下,确实也什么问题。

如果数据量大了,我们给两张表的username都加上索引,以为可以万事大吉了,可以实际发现username的索引并没有被使用。

那么如何解决这个问题呢?我们可以使用jeft join来曲线解决这个问题:

select a.* from a left join b on a.username=b.username where b.username is not null

这样一来,索引就可以被使用上了,效率大大提高。

评论(0) 浏览(45)

mysql查询语句根据in中的条件进行排序

2018-1-24 liyangweb.com 李杨 MySQL

select * from user_info where user_id in(3,1,2) order by instr('3,1,2',user_id)

评论(1) 浏览(662)

centos7 安装 mariadb(mysql)

2016-8-12 liyangweb.com 李杨 MySQL

从最新版本的linux系统开始,默认的是 Mariadb而不是MySQL

使用系统自带的repos安装很简单:

yum install mariadb mariadb-server

systemctl start mariadb ==> 启动mariadb

systemctl enable mariadb ==> 开机自启动

mysql_secure_installation ==> 设置 root密码等相关

mysql -uroot -p123456 ==> 测试登录!

结束!

转自 http://blog.csdn.net/default7/article/details/41973887

标签: centos7 mariadb

评论(0) 浏览(1529)

utf8_unicode_ci与utf8_general_ci的区别

2015-5-12 liyangweb.com 李杨 MySQL

当前,utf8_unicode_ci校对规则仅部分支持Unicode校对规则算法。一些字符还是不能支持。并且,不能完全支持组合的记号。这主要影响越南和俄罗斯的一些少数民族语言,如:Udmurt 、Tatar、Bashkir和Mari。

阅读全文>>

标签: mysql

评论(0) 浏览(1873)

MySQL索引类型 normal, unique, full text的区别

2015-5-12 liyangweb.com 李杨 MySQL

normal:表示普通索引

unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique

full textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。

阅读全文>>

标签: mysql 索引

评论(0) 浏览(2768)

MySQL的btree索引和hash索引的区别

2015-5-11 liyangweb.com 李杨 MySQL

Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。

可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash 索引也一样,虽然 Hash 索引效率高,但是 Hash 索引本身由于其特殊性也带来了很多限制和弊端,主要有以下这些。

阅读全文>>

标签: mysql

评论(0) 浏览(2013)

oracle插入数据时自增ID的解决思路

2014-10-23 liyangweb.com 李杨 Oracle

一直在用MySQL,从来没有为自增ID发过愁,这初到oracle上,连自增ID都让我挠头,好在互联网资源丰富,我在充分吸取精华后,把我的一点经验总结出来给大家分享分享...

阅读全文>>

标签: oracle

评论(0) 浏览(7762)

使用PLSQL插入数据乱码的问题

2014-10-23 liyangweb.com 李杨 Oracle

此种情况最大的可能就是客户端和服务器端的编码不一致,编码永远是一个让非英文国家苦恼的问题,亲测解决方法如下:

阅读全文>>

标签: oracle plsql 乱码

评论(0) 浏览(2372)

oracle与mysql在语法上的区别

2014-10-10 liyangweb.com 李杨 MySQL

数据库oracle与mysql在语法上的区别不是很多,但是也有一些。下面是部分参考:

阅读全文>>

标签: mysql oracle

评论(0) 浏览(3364)

MySql如何将多条数据显示成一条数据 GROUP_CONCAT

2014-9-16 liyangweb.com 李杨 MySQL

有这样一个需求

1:班级表

id class_name

2:学生表

id name class_id

 

如果我们要查所有的班级以及每个班级下的学生,你一定会想到这样写法:

阅读全文>>

标签: SQL mysql

评论(0) 浏览(2561)

Powered by emlog 冀ICP备13011830号-1