麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > 文庫 > 正文

模式配置like %XXX% 優化

2024-09-07 22:12:54
字體:
來源:轉載
供稿:網友
  在MySQL里,like'XXX%可以用到索引,但like '%XXX%'卻不行,比如,以下這個案例:
   查看測試表行數:
  點擊(此處)折疊或打開
 
  mysql> select count(*) from test03;
  +----------+
  | count(*) |
  +----------+
  | 117584   |
  +----------+
    兩次like匹配對比:
  點擊(此處)折疊或打開
 
  mysql> explain select count(*) from test03 where username like '1%';
  +----+-------------+--------+-------+-----------------+-----------------+---------+------+-------+--------------------------+
  | id | select_type | table  | type  | possible_keys   | key             | key_len | ref  | rows  | Extra                    |
  +----+-------------+--------+-------+-----------------+-----------------+---------+------+-------+--------------------------+
  | 1  | SIMPLE      | test03 | range | idx_test03_name | idx_test03_name | 302     | NULL | 58250 | Using where; Using index |
  +----+-------------+--------+-------+-----------------+-----------------+---------+------+-------+--------------------------+
  1 row in set (0.03 sec)
 
  mysql> explain select count(*) from test03 where username like '%1%';
  +----+-------------+--------+-------+---------------+-----------------+---------+------+--------+--------------------------+
  | id | select_type | table | type   | possible_keys | key             | key_len | ref  | rows   | Extra                    |
  +----+-------------+--------+-------+---------------+-----------------+---------+------+--------+--------------------------+
  | 1  | SIMPLE      | test03| index  | NULL          | idx_test03_name | 302     | NULL | 116500 | Using where; Using index |
  +----+-------------+--------+-------+---------------+-----------------+---------+------+--------+--------------------------+
  1 row in set (0.00 sec)
  優化思路:
   這個測試表中,id是主鍵,葉子節點上保存了數據,從索引中就可以去到select的的id的列,不必讀取數據行(只有select字段正好就是索引,那么就用到了覆蓋索引),通過覆蓋索引,減少I/O,提高性能。
   優化之前的執行計劃:
  點擊(此處)折疊或打開
 
  mysql> explain select count(*) from test03 where username like '%1%';
  +----+-------------+--------+------+---------------+------+---------+------+------+-------------+
  | id | select_type | table  | type | possible_keys | key  | key_len | ref  | rows | Extra       |
  +----+-------------+--------+------+---------------+------+---------+------+------+-------------+
  | 1  | SIMPLE      | test03 | ALL  | NULL          | NULL | NULL    | NULL | 7164 | Using where |
  +----+-------------+--------+------+---------------+------+---------+------+------+-------------+
    優化之后的執行計劃:
  點擊(此處)折疊或打開
 
  mysql> explain select count(*) from test03 a join (select id from test03 where username like '%1%') b on a.id=b.id;
  +----+-------------+------------+--------+---------------+---------+---------+------+------+-------------+
  | id | select_type | table      | type   | possible_keys | key     | key_len | ref  | rows | Extra       |
  +----+-------------+------------+--------+---------------+---------+---------+------+------+-------------+
  | 1  | PRIMAR      | <derived2> | ALL    | NULL          | NULL    | NULL    | NULL | 7164 | NULL        |
  | 1  | PRIMARY     | a          | eq_ref | PRIMARY       | PRIMARY | 8       | b.id | 1    | Using index |
  | 2  | DERIVED     | test03     | ALL    | NULL          | NULL    | NULL    | NULL | 7164 | Using where |
  +----+-------------+------------+--------+---------------+---------+---------+------+------+-------------+

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美成人做爰高潮片免费视频 | 91九色电影 | 色骚综合 | 午夜视频免费在线观看 | 精品一区二区三区四区在线 | 依依成人综合 | a网站在线 | 91网站链接 | 毛片在线视频观看 | 日本aaa一级片| 伊人99在线 | 黄色大片免费网站 | 久久蜜桃香蕉精品一区二区三区 | 黄色a级片视频 | 欧美xxxxx视频 | 成人短视频在线观看免费 | 久久久久一区 | 最新中文字幕第一页视频 | 久久精品一区二区三区国产主播 | 欧美综合成人 | 免费观看黄色一级视频 | xx53xx| 亚洲91精品 | 国产在线色 | 国产精选电影免费在线观看网站 | 欧美成人黄色小视频 | 史上最强炼体老祖动漫在线观看 | 久久久久久久免费精品 | 毛片毛片免费看 | 欧美一级特黄aaaaaaa什 | 欧美视频一区二区三区 | 精品人伦一区二区三区蜜桃网站 | 91豆奶| 亚洲码无人客一区二区三区 | 免费观看一区二区三区视频 | 国产一级二级视频 | 暖暖免费观看高清完整版电影 | 欧美在线观看黄色 | 国产乱淫a∨片免费观看 | 国产精品久久久久久影视 | 99精品视频网站 |