zoukankan      html  css  js  c++  java
  • 目录 1. 数据库优化漏斗法则 1 2. 常见优化手段 2 2.1. 索引 2 2.2. 分页 只返回需要的字段 2 2.3. 批处理 2 2.4. 其他 sp 多线程等 2 3. 索引类型 n

    目录

    1. 数据库优化漏斗法则 1

    2. 常见优化手段 2

    2.1. 索引 2

    2.2. 分页  只返回需要的字段 2

    2.3. 批处理 2

    2.4. 其他  sp 多线程等 2

    3. 索引类型  normal (btree hash),unique唯一,fulltext全文索引 2

    3.1. 索引生效原理 EXPLAIN  查看索引 3

    3.2. 强制索引 3

     

    1. 数据库优化漏斗法则

     

    1. 常见优化手段
      1. 索引
      2.  分页  只返回需要的字段
      3. 批处理  
      4. 其他  sp 多线程等

    存储过程

    大量复杂运算在客户端处理

    多线程

     

     

     

     

     

    1. 索引类型  normal (btree hash),unique唯一,fulltext全文索引

     

     

      1. 索引生效原理 EXPLAIN  查看索引

     

    EXPLAIN SELECT

    *

    FROM

    user_tab  force index(aa_name_age_index)

    WHERE

      name='user2'  and age=18   

     

      1. 强制索引

    SELECT

    *

    FROM

    user_tab  force index(aa_name_age_index)

    WHERE

      name='user2'  and age=18   

     

     

    1. MySQL使用全文索引(fulltext index)
    2. 1.创建全文索引(FullText index)

           旧版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。 

           不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引,所以具体信息要随时关注官网,

    1. 3.使用全文索引

         跟普通索引稍有不同

         使用全文索引的格式:  MATCH (columnName) AGAINST ('string')

         eg:

               SELECT * FROM `student` WHERE MATCH(`name`) AGAINST('聪')

               当查询多列数据时:

                    建议在此多列数据上创建一个联合的全文索引,否则使用不了索引的

              SELECT * FROM `student` WHERE MATCH(`name`,`address`) AGAINST('聪 广东')

      1.      3.1. 使用全文索引需要注意的是:(基本单位是)

                分词,全文索引以词为基础的,MySQL默认的分词是所有非字母和数字的特殊符号都是分词符

      3.2. MySQL中与全文索引相关的几个变量:

                 使用命令:mysql> SHOW VARIABLES LIKE 'ft%'; #ft就是FullText的简写

                 ft_boolean_syntax    + -><()~*:""&|         #改变IN BOOLEAN MODE的查询字符,不用重新启动MySQL也不用重建索引
                 ft_min_word_len    4                                   #最短的索引字符串,默认值为4,(通常改为1)修改后必须重建索引文件

                                                                                   重新建立索引命令:repair table tablename quick 

                 ft_max_word_len    84                                #最长的索引字符串,默认值为84,修改后必须重建索引文件

                 ft_query_expansion_limit   20                      #查询括展时取最相关的几个值用作二次查询

                 ft_stopword_file    (built-in)                      #全文索引的过滤词文件,具体可以参考:MySQL全文检索中不进行全文索引默认过滤词         

     

                 特别注意:50%的门坎限制(当查询结果很多,几乎所有记录都有,或者极少的数据,都有可能会返回非所期望的结果)

                           -->可用IN BOOLEAN MODE即可以避开50%的限制。

                          此时使用全文索引的格式就变成了: SELECT * FROM `student` WHERE MATCH(`name`) AGAINST('聪' IN BOOLEAN MODE)

    MySQL使用全文索引(fulltext index) - 一菲聪天 - 博客园.html

  • 相关阅读:
    Shortest path of the king
    二分查找c++简单模板
    2017广东工业大学程序设竞赛B题占点游戏
    2017广东工业大学程序设竞赛C题爬楼梯
    2017广东工业大学程序设竞赛E题(倒水)
    p1250 种树 贪心
    P1248 加工生产调度 贪心
    P1209 [USACO1.3]修理牛棚 Barn Repair 贪心
    P1607 [USACO09FEB]庙会班车Fair Shuttle 贪心
    P2602 [ZJOI2010]数字计数 数位dp
  • 原文地址:https://www.cnblogs.com/attilax/p/15197447.html
Copyright © 2011-2022 走看看