我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL5.7中的函数索引怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL5.7中的函数索引怎么用

本篇文章给大家分享的是有关MySQL5.7中的函数索引怎么用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

 在MySQL5.7之前的版本中,函数索引是无法用到索引的,也不支持虚拟列,下边的SQL执行时候回进行全表扫描:
 select * from t1 where mod(mode_id,8)=1
 MySQL5.7支持虚拟列,并且可以使用函数索引。
 确定数据库版本:

  1. mysql> select version();

  2. +------------+

  3. | version() |

  4. +------------+

  5. | 5.7.18-log |

  6. +------------+

  查看表结构:

  1. mysql> show create table t_func_mod \G

  2. *************************** 1. row ***************************

  3.        Table: t_func_mod

  4. Create Table: CREATE TABLE `t_func_mod` (

  5.   `id` int(11) NOT NULL,

  6.   `mod_id` int(11) GENERATED ALWAYS AS ((`id` % 8)) VIRTUAL,

  7.   PRIMARY KEY (`id`),

  8.   KEY `idx_mod_id` (`mod_id`)

  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8

  插入测试数据:

  1. mysql> insert into t_func_mod values(1,default);

  2. Query OK, 1 row affected (0.08 sec)


  3. mysql> insert into t_func_mod values(2,default);

  4. Query OK, 1 row affected (0.06 sec)


  5. mysql> insert into t_func_mod values(3,default);

  6. Query OK, 1 row affected (0.01 sec)


  7. mysql> insert into t_func_mod values(4,default);

  8. Query OK, 1 row affected (0.01 sec)


  9. mysql> insert into t_func_mod values(5,default);

  10. Query OK, 1 row affected (0.04 sec)


  11. mysql> insert into t_func_mod values(6,default);

  12. Query OK, 1 row affected (0.00 sec)


  13. mysql> insert into t_func_mod values(7,default);

  14. Query OK, 1 row affected (0.00 sec)


  15. mysql> insert into t_func_mod values(8,default);

  16. Query OK, 1 row affected (0.00 sec)

  注意:插入数据时候,虚拟列要使用default,否则会报错。
 查看测试表数据:

  1. mysql> select * from t_func_mod;

    +----+--------+

  2. | id | mod_id |

    +----+--------+

  3. | 8 | 0 |

  4. | 1 | 1 |

  5. | 2 | 2 |

  6. | 3 | 3 |

  7. | 4 | 4 |

  8. | 5 | 5 |

  9. | 6 | 6 |

  10. | 7 | 7 |

    +----+--------+

通过explain查看执行计划,已经使用到了索引:

  1. mysql> explain select * from t_func_mod where mod_id=5;

    ----+-------------+------------+------------+------+---------------+------------+---------+-------+------+----------+-------------+

  2. | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |

    +----+-------------+------------+------------+------+---------------+------------+---------+-------+------+----------+-------------+

  3. | 1 | SIMPLE | t_func_mod | NULL | ref | idx_mod_id | idx_mod_id | 5 | const | 1 | 100.00 | Using index |


以上就是MySQL5.7中的函数索引怎么用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL5.7中的函数索引怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

oracle函数索引怎么创建和使用

创建一个Oracle函数索引的语法如下:CREATE INDEX index_nameON table_name (function_name(column_name));其中,index_name 是索引的名称,table_name
oracle函数索引怎么创建和使用
2024-03-13

oracle中的索引怎么用

oracle 中索引用于快速查找数据并优化查询性能,可用来创建索引、维护索引和在查询中使用索引。索引的优点包括提高查询速度、减少 i/o 操作、优化联接和促进数据完整性。oracle 支持 b-tree、位图、函数和哈希索引等类型。在选择索
oracle中的索引怎么用
2024-05-09

mysql中聚集索引、辅助索引、覆盖索引、联合索引怎么用

这篇文章主要介绍了mysql中聚集索引、辅助索引、覆盖索引、联合索引怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。聚集索引(Clustered Index)聚集索引就是
2023-06-29

python中的索引怎么使用

在Python中,可以使用索引来访问和操作列表、字符串和元组等序列类型的对象。索引是一个非负整数,表示序列中的位置。索引从0开始,表示第一个元素。负数索引从-1开始,表示倒数第一个元素。以下是使用索引的一些常见操作:1. 访问元素:可以使用
2023-08-18

Oracle函数使索引列失效怎么办

小编给大家分享一下Oracle函数使索引列失效怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、数据版本与原始语句及相关信息1.版本信息SQL> select * from v$version;
2023-06-22

编程热搜

目录