MySQL的索引分类及创建原则

MySQL的索引策略是优化查询性能的关键。
首先我们深入了解一下两大类索引:1.1主索引(PrimaryKeyIndex):它是唯一且不可变的,一般用于主键,保证数据的唯一性。
1.2唯一索引(UniqueIndex):允许零个或一个重复值。
它通常用于确保列的唯一性,但不强制它作为表的主键。
1.3唯一非聚集索引(Non-clusteredindex):与唯一索引类似,但数据不按索引顺序存储,查询效率稍低。
1.4简单索引(聚集索引):数据存储在索引中,每个表只有一个,如果不是主键,创建聚集索引时会选择一列。
1.5全文索引(Full-textindex):用于全文检索、文本数据处理,如全文搜索引擎。
创建索引的原则并不是越多越好,原因如下:2.1索引维护成本:每个索引都会占用磁盘空间,重复的插入、删除、更新操作会导致索引结构的频繁调整。
会影响性能。
2.2查询效率:并不是所有的列都适合创建索引。
只在WHERE子句中频繁使用且数据分布均匀的列上创建索引会显着提高查询速度。
2.3选择性:索引该列应具有高选择性(即,唯一值的比例较高)。
否则,覆盖索引不会发挥作用,查询性能的提升也会受到限制。
因此,适当限制索引的数量和类型非常重要,应根据实际业务需求和查询模式来确定,以达到最佳的性能和存储效率。

MySQL语句分类、数据类型以及navicat图形化基本创建操作

MySQL语句主要分为两类:结构操作和数据操作,包括创建数据库和表以及修改表结构。
这是一个结构化操作,不涉及存储任何特定数据。
数据处理包括执行添加、删除和修改操作的数据操作语言(DML)和查询数据的数据查询语言(DQL)。
同时,事务提交和回滚也是SQL操作的重要组成部分。
如果使用Navicat图形界面,则在创建数据库时必须选择字符集。
如果您想支持更多字符,我们建议使用utf8mb4。
创建表后,可以定义TINYINT、INT、BIGINT等字段名称、数据类型和长度,以提供多种整数类型以及FLOAT和DOUBLE浮点类型。
字符类型包括CHAR和VARCHAR。
CHAR存储固定长度字符串,而VARCHAR存储可变长度字符串,从而节省空间。
BLOB、TEXT用于存储大型二进制数据,DATE、DATETIME、TIMESTAMP、TIME是日期和时间格式。
对于特定的日期和时间格式,DATE表示YYYY-MM-DD,DATETIME和TIMESTAMP包含日期和时间,后者存储为时间戳,而TIME仅存储时间。
YEAR(M)用于存储年份,长度可以是2或4位。
在操作过程中,Navicat提供实时应用或取消更改的选项,同时允许对字段设置进行后续调整。