当前位置:编程学习 > VB >>

请问如下SQL语句怎么优化比较好?

假设有个表如下,都没做索引.
字段名 类型 长度
姓名 CHAR 50
性别 CHAR 2
出生日期 datetime 8
地址 CHAR 200

问题1. 应该全部字段 都做索引吗? 性别也要做索引吗? 因为正常情况下,不是男就是女了.

假设这个表 的数据非常多,有10W条记录以上
如这个表经常 要查询
名字里有"华" 字, 地址在北京的.
那么就要 
select * from 数据库 where 姓名 like '%华%' and 地址 like '%北京%' 
这样应该是非常慢的.
问题2. 这种情况下有优化方法吗?

问题3.假如 要找 名叫 "张三" ,性别是 "男", 2000年出生的记录的话
应该是
select * form 数据库 where 姓名='张三' and 性别='男' and 出生日期 between '2000-1-1' and '2001-1-1' 
还是
 select * form 数据库 where 出生日期 between '2000-1-1' and '2001-1-1' 
and 姓名='张三' and 性别='男' 
好一点?为什么? 


 因为这个都是半懂不懂的,希望可以学习一下,谢谢. --------------------编程问答-------------------- 建议帖主先学会在查询分析器里面查看查询执行计划。
--------------------编程问答--------------------
引用 1 楼 zhao4zhong1 的回复:
建议帖主先学会在查询分析器里面查看查询执行计划。


网上搜了下 查询分析器里面查看查询执行计划

好像都是介绍怎么用这东西.没介绍怎么具体优化啊 --------------------编程问答-------------------- select * form 数据库 where 姓名='张三' and 性别='男' and 出生日期 between '2000-1-1' and '2001-1-1' 

应该在姓名,性别,出生日期设置索引,这样才能让数据库驱动程序快速定位数据 --------------------编程问答-------------------- 10W+数据量一点也不算大

性别 CHAR 2:类别就用错了,最快的查询方式一定是整数,最好用 bit

索引的作用是什么,最好找找它的定义,然后自己试着去理解


补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,