navicat设置mysql索引

设计表中: 

 索引种类:

1. Fulltext 全文本搜索索引:用于搜索长篇文章。

2. Unique 唯一索引:  

  1. 主键索引:primary key :加速查找+约束(不为空且唯一)

  2. 唯一索引:unique:加速查找+约束 (唯一)

3. 联合索引:

  1. -primary key(id,name):联合主键索引

  2. -unique(id,name):联合唯一索引

  3. -index(id,name):联合普通索引

4. Normal 普通索引:加快搜索。

5. Spatial 空间索引。

索引功能:

1. 加快搜索;

2. mysql中的primary key,unique,联合唯一也都是索引,这些索引除了加速查找以外,还有约束的功能

索引的两大类型hash与btree:

  1. #我们可以在创建上述索引的时候,为其指定索引类型,分两类

  2. hash类型的索引:查询单条快,范围查询慢

  3. btree类型的索引:b+树,层数越多,数据量指数级增长(我们就用它,因为innodb默认支持它)

  4. #不同的存储引擎支持的索引类型也不一样

  5. InnoDB 支持事务,支持行级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;

  6. MyISAM 不支持事务,支持表级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;

  7. Memory 不支持事务,支持表级别锁定,支持 B-tree、Hash 等索引,不支持 Full-text 索引;

  8. NDB 支持事务,支持行级别锁定,支持 Hash 索引,不支持 B-tree、Full-text 等索引;

  9. Archive 不支持事务,支持表级别锁定,不支持 B-tree、Hash、Full-text 等索引;

1)索引方法 btree  可以用于“ >、 <  、=”查询 ,如果查id=1000的数据 建立索引后 二分查找最多13次就可以查出相应的数据;

2)hash 不能做order by排序 不能做 用like模糊查询。

慢查询优化的基本步骤

0.先运行看看是否真的很慢,注意设置SQL_NO_CACHE

1.where条件单表查,锁定最小返回记录表。这句话的意思是把查询语句的where都应用到表中返回的记录数最小的表开始查起,单表每个字段分别查询,看哪个字段的区分度最高

2.explain查看执行计划,是否与1预期一致(从锁定记录较少的表开始查询)

3.order by limit 形式的sql语句让排序的表优先查

4.了解业务方使用场景

5.加索引时参照建索引的几大原则

6.观察结果,不符合预期继续从0分析

 

### Navicat for MySQL设置字段的方法 在 Navicat for MySQL设置字段是一个非常基础但也十分重要的操作。以下是关于如何在 Navicat for MySQL设置字段的具体说明: #### 1. 创建新表并定义字段 当创建一个新的数据表时,可以通过图形化界面直接定义各个字段的属性。具体步骤如下: - 打开 Navicat 并连接到目标数据库。 - 右键点击 `Tables` 文件夹,选择 `New Table...` 来新建一张表格。 - 在弹出的新建窗口中,输入字段名称、数据类型以及长度/精度等基本信息[^4]。 #### 2. 修改现有字段 如果已经存在一个数据表,并希望修改其中某个字段,则可以按照以下方式操作: - 首先,在对象浏览器中找到对应的表,双击打开它进入设计视图模式。 - 定位至想要调整的那个列位置处,更改其名字或者改变其他参数比如大小写敏感度等等特性[^1]。 #### 3. 设置字段为主键或索引 为了提高查询效率或是确保某些特定条件下的唯一性约束,通常还需要给一些重要字段加上主键或者是建立普通索引来加速检索过程。这一步骤同样可以在编辑状态下完成——只需选中相应行再勾选项框即可实现自动添加功能。 #### 4. 增加额外限制条件(如UNIQUE) 除了基本的数据验证之外,有时也需要施加更严格的规则防止重复录入等情况发生;此时就可以利用“unique”关键字来达成目的。对于通过 GUI 工具像 navicat 这样构建出来的环境来说,只需要简单地切换到高级设置部分并将该项开启就能生效了[^3]。 #### 示例代码展示 下面给出一段简单的 SQL 脚本用于演示上述提到的一些概念的实际应用情况: ```sql CREATE TABLE example ( id INT AUTO_INCREMENT, name VARCHAR(50) NOT NULL UNIQUE, -- 使用NOT NULL 和 UNIQUE 组合保证name 字段不为空且无重复值 age TINYINT UNSIGNED DEFAULT '18',-- 设定默认年龄为18岁并且不允许负数出现 PRIMARY KEY (id) -- 将ID设为主键 ); ``` 以上就是在Navicat For Mysql里边针对不同需求场景下去合理配置各自所需字段的方式方法总结啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值