sql 当中的 count 用法 及两个库复制数据时该列不能为空
2012-12-17 18:25
351 查看
今天写sql时,用到了count,大家都知道count是统计数量的,因为我不管在写什么统计时,一般都会用直接这么用 select count (*) from 表,
不知道其它人在用count时,是不是也是count (*) ,由于我们的数据库数据量是在40W数据之内,且该表字段数量在70个左右,
用count(*)时,用时有时会在0-1秒之间,有时会在0秒(有可能是电脑速度问题),就在我查的同时,脑中忽然出现,为什么不直接count(id)呢?
id列肯定是不为空的,于是就反复查询count(id),操作其它语句的再进行测试count(id)和count(*),发现用时都是在0秒,但是心里感觉还是count(id)要快一些。
所以建议,如果遇到count时,不用*,直接用id列
同理,如果在查select * from 表时,不如直接查select 字段,字段,字段...from 表,去掉没有用的字段,这样查出来的数据比*查出来的要快.
刚才,从A库当中直接打开某个表,复制其中部分数据,到远程B库中的表里,提示该列值不能为空,查看复制的数据当中,该列没有为空的数据,
后来想到,可能是因为复制的数据当中其它字段存在在空值,当中并不是NULL这样的值。所以打乱了字段的数据。
后来想办法,先查出来导成Excle数据,再导入数据,谁知,导成的Excle表,当中数据也是乱的。于是就再试复制,把用sql查出来的数据进行复制,
再再远程B库的表里粘贴,这下成功了,不知道是什么逻辑,直接打开表复制,不可以,查询出来的数据复制就可以。
不知道其它人在用count时,是不是也是count (*) ,由于我们的数据库数据量是在40W数据之内,且该表字段数量在70个左右,
用count(*)时,用时有时会在0-1秒之间,有时会在0秒(有可能是电脑速度问题),就在我查的同时,脑中忽然出现,为什么不直接count(id)呢?
id列肯定是不为空的,于是就反复查询count(id),操作其它语句的再进行测试count(id)和count(*),发现用时都是在0秒,但是心里感觉还是count(id)要快一些。
所以建议,如果遇到count时,不用*,直接用id列
同理,如果在查select * from 表时,不如直接查select 字段,字段,字段...from 表,去掉没有用的字段,这样查出来的数据比*查出来的要快.
刚才,从A库当中直接打开某个表,复制其中部分数据,到远程B库中的表里,提示该列值不能为空,查看复制的数据当中,该列没有为空的数据,
后来想到,可能是因为复制的数据当中其它字段存在在空值,当中并不是NULL这样的值。所以打乱了字段的数据。
后来想办法,先查出来导成Excle数据,再导入数据,谁知,导成的Excle表,当中数据也是乱的。于是就再试复制,把用sql查出来的数据进行复制,
再再远程B库的表里粘贴,这下成功了,不知道是什么逻辑,直接打开表复制,不可以,查询出来的数据复制就可以。
相关文章推荐
- SQL语句:在两个数据库间复制表结构和数据数据库
- SQL两个表的相同字段复制数据
- 复制数据库表中两个字段数据的SQL语句
- sql/pl基本操作】【登陆】【格式化table显示】【两个数据库表复制数据】【格式化输出】
- SQL语句:在两个数据库间复制表结构和更新数据
- SQL语句:在两个数据库间复制表结构和数据数据库
- SQL语句:在两个数据库间复制表结构和数据数据库
- Sql 两个数据库复制数据表到另一个数据
- sql语句中not in和exists 的用法以及更新两个表数据的插入实例
- SQL语句中----删除表数据drop、truncate和delete的用法
- 使用LINQ to SQL将数据从一个数据库复制到另一个数据库
- 不能在数据绑定的 DataGridView 控件上设置 ColumnCount 属性
- SQL复制表结构或表数据
- SQL Server 开发之 复制表数据的SQL脚本生成器
- pl/sql 不能复制
- 知方可补不足~SQL中的count命令的一些优化措施(百万以上数据明显)
- sql查询一张表中两个字段重复的数据并得到其主键
- 通过转成SQL来进行查询,解决hql不能在distinct,group by结果集上使用count的问题
- 【代码】两个activity之间的互相的切换 数据不能同步的解决办法