iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >使用前缀索引对MySQL优化的方法
  • 238
分享到

使用前缀索引对MySQL优化的方法

2024-04-02 19:04:59 238人浏览 泡泡鱼
摘要

下文给大家带来有关使用前缀索引对Mysql优化的方法内容,相信大家一定看过类似使用前缀索引对mysql优化的方法的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完你一定会有所收获。1.查看表

下文给大家带来有关使用前缀索引Mysql优化的方法内容,相信大家一定看过类似使用前缀索引对mysql优化的方法的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完你一定会有所收获。


1.查看表结构

(root@localhost) [prod_db]> show create table t_file_info\G; *************************** 1. row ***************************       Table: t_file_info Create Table: CREATE TABLE `t_file_info` (  `id` varchar(36) NOT NULL DEFAULT '',  `devid` varchar(64) DEFAULT NULL,  `areaid` int(11) DEFAULT NULL,  `fileid` varchar(256) NOT NULL,  `filename` varchar(256) DEFAULT NULL,  `filesize` int(11) DEFAULT NULL,  `filemd5` varchar(40) DEFAULT NULL,  `extend` varchar(4000) DEFAULT NULL,  `status` int(11) NOT NULL DEFAULT '0',  `createdate` datetime DEFAULT NULL,  `fileurl` varchar(256) DEFAULT NULL,  `businessid` bigint(20) NOT NULL DEFAULT '0',  PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8

2.fileid是我们查询的一个条件,正常是需要创建索引的。

 select char_length('63f2a078018649ca9948f5469550bf2a/group1/M00/00/DA/wKgj2FcMQuGAVuJcAAAI4FL7ZCA388.jpg') ;
+-----------------------------------------------------------------------------------------------------+
| char_length('63f2a078018649ca9948f5469550bf2a/group1/M00/00/DA/wKgj2FcMquGAVuJcAAAI4FL7ZCA388.jpg') |
+-----------------------------------------------------------------------------------------------------+
|                                                                                                  84 |
+-----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
--经过和开发沟通了解,前32位相当于uuid可以确定唯一值。

3.这样的字段,我们怎么创建索引,是不是有规律可循。继续查看

--查看选择率
select count(distinct(fileid))/count(*) AS Selectivity from t_file_info;

select count(distinct left(fileid,32))/count(*) from t_file_info;

(root@localhost) [prod_db]> select count(distinct(fileid))/count(*) from t_file_info;
+----------------------------------+
| count(distinct(fileid))/count(*) |
+----------------------------------+
|                           1.0000 |
+----------------------------------+
1 row in set (0.17 sec)

(root@localhost) [prod_db]> select count(distinct left(fileid,32))/count(*) from t_file_info;
+------------------------------------------+
| count(distinct left(fileid,32))/count(*) |
+------------------------------------------+
|                                   0.9999 |
+------------------------------------------+
1和0.9999几乎可以等同,其实这里因为点特殊情况,正常应该都是1才对的。

4.查看无索引的执行计划

explain select id,fileid from prod_db.t_file_info where fileid='63f2a078018649ca9948f5469550bf2a/group1/M00/00/DA/wKgj2FcMquGAVuJcAAAI4FL7ZCA388.jpg';

(root@localhost) [prod_db]> explain select id,fileid from prod_db.t_file_info where fileid='63f2a078018649ca9948f5469550bf2a/group1/M00/00/DA/wKgj2FcMquGAVuJcAAAI4FL7ZCA388.jpg';
+----+-------------+-------------+------+---------------+------+---------+------+-------+-------------+
| id | select_type | table       | type | possible_keys | key  | key_len | ref  | rows  | Extra       |
+----+-------------+-------------+------+---------------+------+---------+------+-------+-------------+
|  1 | SIMPLE      | t_file_info | ALL  | NULL          | NULL | NULL    | NULL | 35109 | Using where |
+----+-------------+-------------+------+---------------+------+---------+------+-------+-------------+
1 row in set (0.00 sec)

5.创建前缀索引,查看执行计划

alter table `prod_db`.`t_file_info` add index idx_t_file_info_fileid(fileid(32));

(root@localhost) [prod_db]> explain select id,fileid from prod_db.t_file_info where fileid='63f2a078018649ca9948f5469550bf2a/group1/M00/00/DA/wKgj2FcMquGAVuJcAAAI4FL7ZCA388.jpg';
+----+-------------+-------------+------+------------------------+------------------------+---------+-------+------+-------------+
| id | select_type | table       | type | possible_keys          | key                    | key_len | ref   | rows | Extra       |
+----+-------------+-------------+------+------------------------+------------------------+---------+-------+------+-------------+
|  1 | SIMPLE      | t_file_info | ref  | idx_t_file_info_fileid | idx_t_file_info_fileid | 98      | const |    1 | Using where |
+----+-------------+-------------+------+
--返回1行才是我们想看到的

6.创建索引

(root@localhost) [prod_db]> alter table `prod_db`.`t_file_info` add index idx_t_file_info_fileid(fileid(32));
Query OK, 0 rows affected (5 min 36.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

创建索引观察系统资源使用情况,内存机会没有变化,但是CPU单核几乎跑满

(root@localhost) [prod_db]> select count(fileid) from t_file_info;
+---------------+
| count(fileid) |
+---------------+
|      12299419 |
+---------------+
1 row in set (14.94 sec) --千万行

小结:
1.了解前缀索引的实用场景。
2.要和开发沟通,了解业务,才能创建最合适的索引。
3.创建索引对系统性能会有很大的影响,要选择一个合适的时间点去创建,评估好影响。任何事情不要想当然,当你没经验,还想当然的时候很容易出问题。

对于上文关于使用前缀索引对Mysql优化的方法,大家觉得是自己想要的吗?如果想要了解更多相关,可以继续关注我们的数据库板块。

 

您可能感兴趣的文档:

--结束END--

本文标题: 使用前缀索引对MySQL优化的方法

本文链接: https://www.lsjlt.com/news/35495.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • MySQL中前缀索引的优势和用法
    MySQL中前缀索引的优势和用法 在MySQL数据库中,索引是提高查询效率的重要手段之一。除了常见的全字段索引外,还有一种特殊的索引叫做前缀索引。本文将介绍前缀索引的优势和用法,并附上...
    99+
    2024-03-14
    mysql 优势 前缀索引
  • MySQL字符串前缀索引使用
    目录1. 前缀索引与全部索引概念2. 前缀索引与全部索引数据结构3. 前缀索引与全部索引引执行流程4. 前缀索引长度如何取舍5. 前缀索引对覆盖索引的影响6. 其他解决方案7. 梳理...
    99+
    2023-02-03
    MySQL字符串前缀索引 MySQL 前缀索引
  • 关于MySQL的索引之最左前缀优化详解
    目录一、联合索引联合索引执行示例二、索引的 order by优化mysql中的排序方式数据准备无索引有索引where子句索引字段顺序不一致order by索引字段顺序不一致索引字段升降序不一致三、总结一、联合索...
    99+
    2023-05-16
    MySQL索引 MySQL最左前缀优化
  • 如何在MySQL中使用前缀索引?
    如何在MySQL中使用前缀索引? MySQL是一款非常流行的关系型数据库管理系统,它支持使用索引来提高查询性能。在某些情况下,如果数据库表中的列具有较长的值,可以考虑使用前缀索引来减少...
    99+
    2024-03-15
    mysql 前缀索引
  • MySQL优化及索引的方法
    这篇“MySQL优化及索引的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL优化及索引的方法”文章吧。索引简单介...
    99+
    2023-06-29
  • MySQL的前缀索引有什么作用?
    MySQL的前缀索引有什么作用?(1500字) 导言 在MySQL数据库中,索引是一种提高数据检索效率的重要技术手段。前缀索引是一种特殊类型的索引,它可以在某些情况下有效地减小索引的大...
    99+
    2024-03-14
    mysql 作用 前缀索引 内存占用
  • MySQL中前缀索引的原理解析
    MySQL中前缀索引的原理解析与代码示例 前缀索引是MySQL数据库中一种优化查询性能的技术,通过只对字段值的一部分进行索引来减小索引的大小,从而提升查询效率。本文将详细解析前缀索引的...
    99+
    2024-03-14
    原理 mysql 前缀索引
  • mysql中前缀索引指的是什么
    这篇文章主要为大家展示了“mysql中前缀索引指的是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql中前缀索引指的是什么”这篇文章吧。1、说明有时候需要索引很长的字符列,索引变得又大...
    99+
    2023-06-15
  • 了解MySQL前缀索引的重要性
    了解MySQL前缀索引的重要性,需要具体代码示例 在数据库系统中,索引是一种提高数据检索效率的重要工具。MySQL作为一个强大的关系型数据库管理系统,索引在其中起着至关重要的作用。在M...
    99+
    2024-03-14
    数据库 重要性 前缀索引
  • MySQL索引优化的方法是什么
    MySQL索引优化的方法有以下几种: 选择合适的列创建索引:根据查询的列和条件,选择最经常使用的列创建索引,以提高查询的效率。 ...
    99+
    2024-04-09
    MySQL
  • MySQL使用索引优化性能
    目录1.索引问题2.索引的存储分类3.如何使用索引3.1使用索引3.2存在索引但不使用索引4.查看索引使用情况5.两个简单实用的优化方法5.1定期分析表和检查表5.2定期优化表1.索...
    99+
    2024-04-02
  • Swoole和Workerman对PHP与MySQL的索引统计和索引选择的优化方法
    引言:在Web开发过程中,数据库是必备的组件之一。而索引是对数据库中数据进行快速查找的关键因素之一。索引的选择和优化可以极大地提高数据库的查询性能。在本文中,我们将介绍如何使用Swoole和Workerman对PHP与MySQL的索引进行统...
    99+
    2023-10-21
    swoole 索引优化 Workerman
  • SQL索引的优化方法
    这篇文章主要讲解了“SQL索引的优化方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL索引的优化方法”吧!SELECT TOP 50ROW_N...
    99+
    2024-04-02
  • MySQL索引管理优化的方法教程
    这篇文章主要讲解了“MySQL索引管理优化的方法教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL索引管理优化的方法教程”吧! ...
    99+
    2024-04-02
  • MySQL中怎么使用索引优化
    本篇内容主要讲解“MySQL中怎么使用索引优化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL中怎么使用索引优化”吧!使用索引优化索引是数据库优化最常用也是最重要的手段之一,通过索引通常...
    99+
    2023-07-05
  • mysql 索引使用及优化详情
    目录前言mysql索引原理mysql索引分类索引创建语法1、创建索引2、查看索引3、删除索引4、为 username和password创建联合索引5、给user表添加一个info的字...
    99+
    2024-04-02
  • Mysql索引的最左前缀原则是什么
    这篇文章主要介绍了Mysql索引的最左前缀原则是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mysql索引的最左前缀原则是什么文章都会有所收获,下面我们一起来看看吧。前言之所以有这个最左前缀索引归根结底是...
    99+
    2023-06-29
  • MySQL数据库SQL及索引优化的方法
    MySQL数据库SQL及索引优化的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!     ...
    99+
    2024-04-02
  • Swoole和Workerman对PHP与MySQL的索引扫描和索引覆盖查询的优化方法
    引言:在大规模的Web应用中,数据库查询的性能优化是至关重要的。索引是一种非常有效的优化手段之一,可以加快查询的速度。针对PHP与MySQL的索引扫描和索引覆盖查询,本文将介绍如何使用Swoole和Workerman来进行优化,并提供具体的...
    99+
    2023-10-21
    优化方法 Workerman 关键词:swoole
  • PHP与MySQL索引的原理及优化方法
    引言:在开发和维护一个功能强大的数据库应用程序时,索引是一个重要的概念,它可以显著提高数据库查询的效率。本文将介绍PHP与MySQL索引的原理和优化方法,并提供一些具体的代码示例。一、索引的原理索引是一种数据结构,它可以帮助数据库引擎快速定...
    99+
    2023-10-21
    PHP 优化方法 MySQL索引
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作