文章目录一. 存储引擎1.1 MySQL体系结构1.2 存储引擎简介、特点、存储引擎选择1.3 MySQL的启动、连接、关闭Linux二、索引2.1 索引结构与常见索引2.2 索引分类与理解2.3 索引的语法:创建、查看、删除2.4 查询数据库几大操作频率的语句三、慢查询日志四、 索引失效、SQL优化等一. 存储引擎1.1 MySQL体系结构1.2 存储引擎简介、特点、存储引擎选择存储引擎是针对表的不是针对数据库即同一数据库中的不同表可以指定不同存储引擎。存储引擎的指定在创建表时ENGINE关键字指定createtablename(……)ENGINEINNODB查询当前数据库所支持的存储引擎showengines;InnoDB是一种兼顾高可靠性和高性能的通用存储引擎在MySQL5.5之后InnoDB是默认的MySQL存储引擎。特点DML操作遵循ACID模型支持事务行级锁提高并发访问性能支持外键foreign key 约束保证数据的完整性、正确性。文件xxx.idbidb代表的是表名innodb引擎的每张表都会对应这样一个表空间文件存储该表的表结构frm、sdi数据和索引。参数innodb_file_per_table 决定多张表和一张表共用这样的表空间文件。1.3 MySQL的启动、连接、关闭Linux# 启动mysql服务systemctlstartmysqld# 如果使用rpm安装的mysql 登录时需要输入初始化密码下面是查询密码greptemporary password/var/log/mysqld.log# 登录连接mysql-u root-p二、索引索引index帮助MySQL高效获取数据的数据结构有序。优势劣势提高数据检索的效率降低数据库的IO成本索引列也是要占用空间的通过索引列对数据进行排序降低数据排序的成本降低CPU的消耗索引大大提高了查询效率同时却也降低更新表的速度如对表进行insert、update、delete时效率降低2.1 索引结构与常见索引MySQL的索引是在存储引擎层实现的不同的存储引擎有不同的结构主要包含如下几种索引结构描述BTree索引最常见的索引类型大部分引擎都支持BTree索引hash索引底层数据结构是用哈希表实现的只有精确匹配索引列的查询才有效不支持范围查询R-tree(空间索引)空间索引是MyISAM引擎的一个特殊索引类型主要用于地理空间数据类型通常使用较少Full-text(全文索引)是一种通过建立倒排索引快速匹配文档的方式。类似于Lucene,solr,Es2.2 索引分类与理解在InnoDB存储引擎中根据索引的存储形式又可分为以下两种聚集索引选取规则如果存在主键主键索引就是聚集索引如果不存在主键将使用第一个唯一UNIQUE索引作为聚集索引。如果表没有主键或没有合适的唯一索引则Innodb会自动生成一个rowid作为隐藏的聚集索引。2.3 索引的语法:创建、查看、删除# 创建索引create[unique|fulltext]indexindex_nameontable_name(index_col_name,…);# 查看索引showindexfromtable_name;# 结果展示为表格showindexfromtable_name \G;# 会以文档的形式展示# 删除索引dropindexindex_nameontable_name2.4 查询数据库几大操作频率的语句showglobalstatuslikeCom_______;三、慢查询日志慢查询日志记录了所有执行时间超过指定参数long_query_time,单位秒默认10秒的所有SQL语句的日志。MySQL的慢查询日志默认没有开启。查询其状态showvariableslikeslow_query_log;需要在MySQL的配置文件/etc/my.cnf中配置如下信息# 开启MySQL慢日志查询开关 slow_query_log1 # 设置慢日志时间为2秒SQL语句执行时间超过2秒就会视为慢查询记录慢查询日志。 long_query_time2四、 索引失效、SQL优化等索引失效、SQL定位及调优慢查询日志、mysql profile、全日志