小编use*_*157的帖子

索引、外键和优化

不是 DBA 所以请原谅我的无知...

我有一个包含 20 个字段的表,其中 8 个是外键。Mysql 默认为每个外键添加了一个索引。表有大约 10 万行。在检索数据时,一些外键会被使用,而另一些则不会。另外,我想为查询时经常使用的另外两个字段添加索引。

我的问题是——

1) 在下面的代码中,我们应该只索引字段“标准”还是应该将 col1、col2 创建为非聚集索引?

SELECT col1, col2
FROM table1
WHERE criteria
Run Code Online (Sandbox Code Playgroud)

我的理解 - 如果仅索引字段“标准”,则查询将使用索引来解析要检索的行。发布它会进行全表扫描以检索相关行

2)我可以删除外键上的索引并且仍然使外键约束起作用吗?

3) 具有 20 个字段的表上的 10 个索引。这会在插入过程中导致性能问题吗?

4) 索引最优存储方案——BTREE、RTREE、HASH。我假设 BTREE 用于具有 > 或 < 的查询,并为 = 查询使用散列。这是正确的方法吗?

任何建议将不胜感激。

mysql database-design

4
推荐指数
1
解决办法
7469
查看次数

标签 统计

database-design ×1

mysql ×1