更新时间:2020-02-12 10:09:21 来源:极悦 浏览2217次
数据库是开发过程中必须要有的,正是由于数据库的使用率是100%,所以会有各种各样的关于数据库的优化,拆分等等一系列的问题。
负向查询不能使用索引
selectnamefromuserwhereidnotin(1,3,4);
应该修改为:
selectnamefromuserwhereidin(2,5,6);
前导模糊查询不能使用索引
如:
selectnamefromuserwherenamelike'%zhangsan'
非前导则可以:
selectnamefromuserwherenamelike'zhangsan%'
建议可以考虑使用Lucene等全文索引工具来代替频繁的模糊查询。
数据区分不明显的不建议创建索引
如user表中的性别字段,可以明显区分的才建议创建索引,如身份证等字段。
字段的默认值不要为null
这样会带来和预期不一致的查询结果。
在字段上进行计算不能命中索引
selectnamefromuserwhereFROM_UNIXTIME(create_time)<CURDATE();
应该修改为:
selectnamefromuserwherecreate_time<FROM_UNIXTIME(CURDATE());
最左前缀问题
如果给user表中的usernamepwd字段创建了复合索引那么使用以下SQL都是可以命中索引:
但是使用
selectusernamefromuserwherepwd='axsedf1sd'
是不能命中索引的。
如果明确知道只有一条记录返回
selectnamefromuserwhereusername='zhangsan'limit1
可以提高效率,可以让数据库停止游标移动。
不要让数据库帮我们做强制类型转换
selectnamefromuserwheretelno=18722222222
这样虽然可以查出数据,但是会导致全表扫描。
需要修改为
selectnamefromuserwheretelno='18722222222'
如果需要进行join的字段两表的字段类型要相同
不然也不会命中索引。
数据库相关视频教程
oracle数据库教程:
数据库plsql教程:
jdbc数据库教程:
数据库mysql教程:
Java实战项目视频之egov项目视频教程【免费下载】:
Java学生成绩管理系统视频教程【免费下载】:
以上就是极悦注册机构小编介绍的“Java数据库编程视频教程下载”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习