美文网首页数据库性能优化
索引使用技巧及sql书写规范

索引使用技巧及sql书写规范

作者: 汗菜 | 来源:发表于2017-10-27 17:58 被阅读0次

一. 了解索引的种类和用法(这里只探究BTree索引的用法)

1. 唯一索引

唯一索引不允许两行具有相同的索引值。如果是多列构成的唯一索引,则要求多列的组合值不能出现相同

2. 组合索引

组合索引又称复合索引,由多列构成。在使用组合索引时,需要保证复合索引的第一列在语句中使用了索引,在合适的场景可以避免回表查询,在索引中完成查询。

二. 建立索引的技巧

1.为主键,外键以及对记录起明显标识作用的字段建立索引

这些字段通常会用作条件筛选,表连接,以及排序分组,为这些字段加上单个索引可以缩短sql执行的时间

2.在业务相近的字段上建立组合索引

将一些经常出现在一个结果集中的字段按照顺序建立组合索引,通常把筛选效果明显的字段放在组合索引的前面。

3.在必须要前导模糊查询的字段在建立全文索引

前导模糊查询 '%str','%str%'会导致普通索引失效,要想使用索引需要建立全文索引(FULLTEXT INDEX)

4.在不合适的字段上不建索引

一些字段不适用用来建立索引,非但不会优化查询效率,反而会使查询效率变得十分低下。
如:
筛选效果不明显的字段: 筛选后的结果集相对总数据量占比很大时,需要重复的去索引树中检索到行数据标识ROWID,然后去表中取出数据。这样的查询效率甚至会比全表扫描更低。
字段长度非常大的字段: 备注,大文本等类型的字段在建立索引时,需要消耗很大的空间去存放索引树

三. 什么情况下会使用索引

COLUMN_INDEX =(>,>=,<,<=) ?
COLUMN_INDEX BETWEEN ? AND ?
COLUMN_INDEX IN (?,?,?)
COLUMN_INDEX LIKE 'str?' (后导模糊查询)
TABLE1.COLUMN_INDEX = TABLE2.COLUMN_INDEX (表关联)

书写SQL的规范

1. 会引起索引失效的SQL

使用not,!=,
使用前导模糊查询'%str',‘%str%’,
对索引字段使用函数 tip: where id + 1 = 123
对索引字段进行类型转换 tip: where type = 2 (type 为varchar 类型,此时type_index索引失效)
使用order by排序时,tip: 使用普通索引时,如果结果集为 * 时,不走索引;使用复合索引,如果sql语句使用索引字段的顺序和复合索引字段顺序不一致时,不走索引

2. 一些低效的sql

整理好后继续发布

相关文章

  • 索引使用技巧及sql书写规范

    一. 了解索引的种类和用法(这里只探究BTree索引的用法) 1. 唯一索引 唯一索引不允许两行具有相同的索引值。...

  • MySQL运维及开发规范

    MySQL运维及开发规范 一.基础规范 二.命名规范 库、表、字段开发设计规范 四.索引规范 五.SQL规范 六....

  • MySql推荐使用规范

    目录一、基础规范二、命名规范三、字段设计规范四、索引设计规范五、SQL使用规范 正文一、基础规范1. 使用Inno...

  • 数据库开发设计规范

    数据库开发设计规范 命名规范 基础规范 字段设计规范: 索引规范 索引禁忌 SQL设计 操作规范: 注意事项:

  • 开发规范

    XML 书写规范:非生成的SQL一律使用大写,缩进、对齐必须工整 注释规范 例: 通用Java规范 编码前,务必熟...

  • SQL语句的优化

    sql语句的优化:多使用共享语句 尽量使你的sql语句能够使用索引。怎样使sql语句能够使用到索引呢:当sql语句...

  • MySQL索引知多少

    mysql索引 总结关于mysql的索引,查询优化,SQL技巧等 1 索引类型 B-Tree索引 Hash索引 ...

  • MySQL 优化sql 查询慢的方法(一)

    一、因为sql语句使用不规范而引起的引擎放弃使用索引而进行的全表扫描: 1、尽量避免在 where 子句中对字...

  • MySQL优化----SQL语句和索引优化

    sql及索引优化 如何发现有问题的sql? 使用Mysql的慢查询日志对有效率问题的SQL进行监控 慢查询日志所包...

  • MySQL数据库开发规范知识点速查

    数据库设计规范 命名规范 基本设计规范 索引设计规范 字段设计规范 SQL开发规范 操作行为规范 命名规范 对象名...

网友评论

    本文标题:索引使用技巧及sql书写规范

    本文链接:https://www.haomeiwen.com/subject/xrgrpxtx.html