最近的两条sql效率优化心得
第一条:
select * from where field in (1,2,3) 这种写法应该舍弃了,而应该这样写:
select * from table where field = 1 or field = 2 or field = 3
为什么呢?
凡事只有做过才知道,自己建个表,插入10W条测试数据,用sql测试一下便知,因为工作便利,我在产品机和外网测试机都已经测试过,所以建议以后不用in了,改用or
第二条:
like 与 regexp
如你所知:
like是匹配任意字符,任意位数,而regexp是mysql的正则匹配函数
同上,今天测试,效率对比立现,改用regexp,摒弃like
rlike是regexp的别名,很多人也习惯rlike,看个人习惯
相关文档:
select语句中只能使用sql函数对字段进行操作(链接sql server),
select 字段1 from 表1 where 字段1.IndexOf("云")=1;
这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。
left()是sql函数。
select 字段1 from 表1 where charindex('云',字段1)=1; 字符串函数对二进制数据、字符串和 ......
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
举例如下:
--------------------------------------------
表A记录如下:
aID aNum
1 a ......
Standard Security:
"Data Source=Aron1;Initial
Catalog=pubs;User Id=sa;Password=asdasd;"
- or -
"Server=Aron1;Database=pubs;User
ID=sa;Pass ......
Microsoft Access 数据类型
数据类型
描述
存储
Text
用于文本或文本与数字的组合。最多 255 个字符。
Memo
Memo 用于更大数量的文本。最多存储 65,536 个字符。
注释:无法对 memo 字段进行排序。不过它们是可搜索的。
Byte
允许 0 到 255 的数字。
1 字节
Integer
允许介于 -32,768 到 32 ......