File tree Expand file tree Collapse file tree 1 file changed +1
-2
lines changed Expand file tree Collapse file tree 1 file changed +1
-2
lines changed Original file line number Diff line number Diff line change @@ -220,6 +220,7 @@ title的选择性不足0.0001(精确值为0.00001579),所以实在没有
220
220
### 结构优化
221
221
* 在InnoDB中不建议使用过长的字段作为主键,因为所有辅助索引都引用主索引,过长的主索引会令辅助索引变得过大。
222
222
* 在InnoDB中不建议用非单调的字段作为主键,因为InnoDB数据文件本身是一颗B+Tree,非单调的主键会造成在插入新记录时数据文件为了维持B+Tree的特性而频繁的分裂调整,十分低效,而使用自增字段作为主键则是一个很好的选择。
223
+ * 在InnoDB中,如果没有特别的需要,请永远使用一个与业务无关的自增字段作为主键。
223
224
* 为了兼顾索引的大小和查询速度,可以通过前缀索引(截取字段左边部分内容构建索引)的方式优化索引。
224
225
* 尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接时会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。
225
226
### 查询优化
@@ -233,8 +234,6 @@ title的选择性不足0.0001(精确值为0.00001579),所以实在没有
233
234
* like以通配符(%)开头的字段查询无法使用索引,故查询应尽量避免此种情况。
234
235
* 在 where 子句中使用or时,必须or表达式中的字段都建有索引,否则无法使用索引,若要使用索引可以通过union替代or。
235
236
236
- ### InnoDB的主键选择与优化
237
-
238
237
# 参考文献
239
238
[ MySQL索引背后的数据结构及算法原理] ( http://blog.codinglabs.org/articles/theory-of-mysql-index.html )
240
239
[ 数据库索引详解] ( http://www.cnblogs.com/gavinsp/p/5513536.html )
You can’t perform that action at this time.
0 commit comments