您好,登录后才能下订单哦!
数据库优化工程师必看 第一部分(索引、视图)
防伪码:勤劳一日,可得一夜安眠;勤劳一生,可得幸福长眠
在本章技术详解之前,先分享一个今天晚上和一个做IT的学弟的沟通总结:
我们从八点多聊到十点 ,他主要做Linux高级运维,大部分时间还是做数据库的一些工作, 按理说还是我的小师弟 。哈哈。 他说, 刚毕业从一家外资高新技术企业跳糟到一家国企,工资涨了小2000,现在税后也是8500。 但是,他非常后悔。我说以前的公司该是多么强大,让你宁可每个月少挣好几千也想回到以前的公司, 他说老表,工资不是衡量一个人价值的唯一标准, 给你举例说明你就知道这个公司有多厉害了 ,这家公司叫青牛(北京)技术有限公司,主要做融合网络的 最重要的是大多数的员工,自主的要求无偿加班,回忆起我以前刚毕业在那家软件公司上班的情景,总之效率特别高,例如经理下达一个命令到技术部,要求中午下班之前完成,六七个部门的员工帮我一起完成,而我现在在xx国企,想做个备份,不知道秘钥号码,问经理、测试工程师、问遍了,哎, 等我知道了秘钥号,本来上午十点可以做完的事情。 结果,下午两点才刚刚开始 ,如果给我一次重新选择的机会,我一定选择拥有强大战斗力和文化底蕴的公司,我在青牛仿佛看到了未来的第二个阿里巴巴集团。我其实总结一下 就是:眼光决定格局 选择决定未来 用我恩师的话说:公司文化的力量很大程度上决定他能走多远飞多高!
现在是凌晨0:54分,我们正式开始索引和视图的详解,希望就像博客昵称“一盏烛光“那样,去帮助更多的人解决实际问题,谢谢各位的支持。我将持续更新更多原创技术文档。
注:INDEX=aaa,即索引=索引名。虽然可以指定SQL Server按哪个索引进行数据查询,但一般不需要人工指定,SQL Server将会根据所创建的索引,自动优化查询。其实,使用索引可加快数据检索速度,但为每个列都建立检索没有必要。因为检索自身也需要维护,并占用一定资源。
案例二:验证索引的作用
1、 首先创建一个数据量大的表,名称为“学生表”,分别有三列,学号,姓名和班级,如下图所示,学号为自动编号,班级为默认值“一班”。
2、 向表中插入大量数据,数据越多,验证索引的效果越好。
我们可以右击,选择前1000行,效果如下:
4、使用语句查询第900000行的数据,Select * from 学生表 Where 学号=900000
6、为了下面分析文件更准确,多执行几次Select * from 学生表 Where 学号=900000
注:这里选择第一项 ,跟踪文件。然后保存至桌面,效果如下:
7、 打开“数据库引擎优化顾问”,添加跟踪文件,进行分析,发现索引建议,需要建立索引。
注意:选择benet数据库中的学生表,然后点击“开始分析”
9、 再次执行Select * from 学生表Where 学号=900000
10、 打开sql server profiler查看跟踪的时间,发现查询时间大幅提升,说明索引可以提高查询速度。
发现总计时间为1毫秒,几乎忽略不计,以至于几乎不花时间立即查询
首先我们先来了解一下索引的分类以及选择索引列的注意事项:
我们掌握了学术性的理论后,将进行详细的试验操作来进一步巩固:
1、 创建聚集索引
为tstudent表创建聚集索引
选中studentID,单击左上侧的主键按钮
)
Go
name='Tstudent')
Indid中1代表聚集索引
Indid中2代表唯一非聚集索引
Indidz中3代表非聚集索引
二、视图
在这里,一些举例试验就不再一一演示了,因为,在我看来,作为一名数据库管理员,必须要掌握数据库优化这项技能。
最好掌握一些基本的通用语法,虽说视图是个变量,随时更新变化,用起来很方便简洁,可直接在其基础上直接
执行:
例如
select * from 视图名
where 条件=xxx
很方便,但是视图毕竟有局限性,在性能和修改限制方面有待提高。
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
开发者交流群:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。