网站建设开题报告数据库建立,新开传奇网站180火龙,百度seo权重,上海网站建设公司价格1.索引
1.1 索引的概念 索引(index)是帮助MySQL高效获取数据的有序数据结构#xff0c;这些数据结构以某种方式指向数据#xff0c;这样就可以在这种数据结构之上实现高级查找#xff0c;而不是全表扫描。 MySQL中选择的数据结构是 B 树。 innoDB的逻辑存储结构 表空间 -- …1.索引
1.1 索引的概念 索引(index)是帮助MySQL高效获取数据的有序数据结构这些数据结构以某种方式指向数据这样就可以在这种数据结构之上实现高级查找而不是全表扫描。 MySQL中选择的数据结构是 B 树。 innoDB的逻辑存储结构 表空间 -- 段 -- 区 -- 页 --- 行innoDB的最小操作单元是页。一个区固定大小1M页固定大小16K所以一个区有64个页
1.2 索引的分类 在innoDB中根据索引的存储形式又可以分为聚焦索引和二级索引 如果我们查询设置的条件是二级索引那么它会先通过二级索引查找到主键值然后再到聚焦索引中查询对应的数据这个过程被称作回表查询
1.3 索引语法
1.3.1 创建索引 create [unique/fulltext] index 索引名 on 表名(字段名列表) eg. create unique index student_name on student(name)
如果只有一个字段那么这个索引被称作单列索引多个字段则是联合索引
1.3.2 查看索引 show index from 表名 eg. show index from student
1.3.3 删除索引 drop index 索引名 on 表名 eg. drop index student_name on student 2.SQL性能优化
2.1 SQL性能分析
2.1.1 查看当前数据库SQL执行频率 show global/session status like com_______(七个下划线一个下划线代表一个字符insertupdatedeleteselect都是六个字符加上一个下划线) 如果当前数据库是查询的频率最高那么我们就可以考虑优化查询SQL。
2.1.2 慢查询日志 慢查询日志只能记录超过设置时间的查询语句如果我们的超时设置为2但是有些查询花费了1.9s那么它是不能被慢日志记录的此时我们需要使用profiling进行查看
-- 查看当前是否支 profiling
select have_profiling ;-- 查看profiling是否打开 0-关闭 1-打开
select profiling ;-- 打开profiling 如果是0就是关闭
set profiling 1 ;-- 一系列查询操作
select * from student ;
select * from student where id 1 ;
select name from student where id 1 ;-- 查看开启profiling期间所有查询花费的时间
show profiles ;