iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >简单了解添加mysql索引的3条原则
  • 154
分享到

简单了解添加mysql索引的3条原则

2024-04-02 19:04:59 154人浏览 安东尼
摘要

一,索引的重要性 索引用于快速找出在某个列中有一特定值的行。不使用索引,Mysql必须从第1条记录开始然后读完整个表直到找出相关的行。表越大,花费的时间越多。如果表中查询的列有一个索引,mysql能快速到达

一,索引的重要性

索引用于快速找出在某个列中有一特定值的行。不使用索引,Mysql必须从第1条记录开始然后读完整个表直到找出相关的行。表越大,花费的时间越多。如果表中查询的列有一个索引,mysql能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。注意如果你需要访问大部分行,顺序读取要快得多,因为此时我们避免磁盘搜索。

假如你用新华字典来查找“张”这个汉字,不使用目录的话,你可能要从新华字典的第一页找到最后一页,可能要花二个小时。字典越厚呢,你花的时间就越多。现在你使用目录来查找“张”这个汉字,张的首字母是z,z开头的汉字从900多页开始,有了这条线索,你查找一个汉字可能只要一分钟,由此可见索引的重要性。但是索引建的是不是越多越好呢,当然不是,如果一本书的目录分成好几级的话,我想你也会晕的。

二,准备工作


//准备二张测试表 
mysql> CREATE TABLE `test_t` ( 
-> `id` int(11) NOT NULL auto_increment, 
-> `num` int(11) NOT NULL default '0', 
-> `d_num` varchar(30) NOT NULL default '0', 
-> PRIMARY KEY (`id`) 
-> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 
Query OK, 0 rows affected (0.05 sec) 
mysql> CREATE TABLE `test_test` ( 
-> `id` int(11) NOT NULL auto_increment, 
-> `num` int(11) NOT NULL default '0', 
-> PRIMARY KEY (`id`) 
-> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 
Query OK, 0 rows affected (0.05 sec) 
//创建一个存储过程,为插数据方便 
mysql> delimiter | 
mysql> create procedure i_test(pa int(11),tab varchar(30)) 
-> begin 
-> declare max_num int(11) default 100000; 
-> declare i int default 0; 
-> declare rand_num int; 
-> declare double_num char; 
-> 
-> if tab != 'test_test' then 
-> select count(id) into max_num from test_t; 
-> while i < pa do 
-> if max_num < 100000 then 
-> select cast(rand()*100 as unsigned) into rand_num; 
-> select concat(rand_num,rand_num) into double_num; 
-> insert into test_t(num,d_num)values(rand_num,double_num); 
-> end if; 
-> set i = i +1; 
-> end while; 
-> else 
-> select count(id) into max_num from test_test; 
-> while i < pa do 
-> if max_num < 100000 then 
-> select cast(rand()*100 as unsigned) into rand_num; 
-> insert into test_test(num)values(rand_num); 
-> end if; 
-> set i = i +1; 
-> end while; 
-> end if; 
-> end| 
Query OK, 0 rows affected (0.00 sec) 
mysql> delimiter ; 
mysql> show variables like "%pro%"; //查看一下,记录执行的profiling是不是开启动了,默认是不开启的 
+---------------------------+-------+ 
| Variable_name | Value | 
+---------------------------+-------+ 
| profiling | OFF | 
| profiling_history_size | 15 | 
| protocol_version | 10 | 
| slave_compressed_protocol | OFF | 
+---------------------------+-------+ 
4 rows in set (0.00 sec) 
mysql> set profiling=1; //开启后,是为了对比加了索引后的执行时间 
Query OK, 0 rows affected (0.00 sec) 
您可能感兴趣的文档:

--结束END--

本文标题: 简单了解添加mysql索引的3条原则

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

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

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

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

下载Word文档
猜你喜欢
  • 简单了解添加mysql索引的3条原则
    一,索引的重要性 索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。表越大,花费的时间越多。如果表中查询的列有一个索引,MySQL能快速到达...
    99+
    2024-04-02
  • 原则性地为MySQL索引添加
    MySQL索引添加原则及代码示例 一、引言在MySQL数据库中,索引是提高查询效率、优化数据库性能的重要手段之一。正确地添加索引可以大大减少查询时的磁盘IO操作,提高查询速度。然而,在...
    99+
    2024-02-22
    索引优化 编程实践 添加索引 mysql索引 内存占用
  • 一文简单了解MySQL前缀索引
    当要索引的列字符很多时 索引则会很大且变慢 ( 可以只索引列开始的部分字符串 节约索引空间 从而提高索引效率 ) 原则: 降低重复的索引值 例如现在有一个地区表 areagdpcod...
    99+
    2024-04-02
  • 如何进行MySQL索引条件下推的简单测试
    本篇文章给大家分享的是有关如何进行MySQL索引条件下推的简单测试,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 自MySQL 5.6开始,...
    99+
    2024-04-02
  • MySQL为数据表建立索引的原则详解
    目录1.索引是什么?2.索引的优点3.索引的缺点4.在建立索引的时候,都有哪些需要考虑的因素呢1、只为用于搜索、排序、分组的列创建索引2、索引列的类型尽量小3、为列前缀建立索引4、覆...
    99+
    2024-04-02
  • 图文详解Mysql索引的最左前缀原则
    目录前言1. 定义2. 全索引顺序3. 部分索引顺序3.1 正序3.2 乱序4. 模糊索引5. 范围索引总结前言 之所以有这个最左前缀索引 归根结底是mysql的数据库结构 B+树 ...
    99+
    2024-04-02
  • MySQL索引下推(ICP)的简单理解与示例
    前言 索引下推(Index Condition Pushdown, 简称ICP)是MySQL 5.6 版本的新特性,它能减少回表查询次数,提升检索效率。 MySQL体系结构 要明白...
    99+
    2024-04-02
  • 深入了解MySQL中索引优化器的工作原理
    目录本文导读一、mysql 优化器是如何选择索引的1、MySQL数据库组成2、MySQL数据库成本计算二、MySQL查询成本三、SELECT 执行过程总结本文导读 本文将解读MySQL数据库查询优化器(CBO)的...
    99+
    2024-04-02
  • 了解Python文件索引的工作原理,轻松实现文件快速加载。
    Python文件索引是Python解释器在加载模块时用来快速查找文件位置的一种机制。它通过在模块搜索路径中建立索引缓存,从而实现了文件位置的快速定位。在本文中,我们将详细介绍Python文件索引的工作原理,并演示如何使用它来实现文件的快速加...
    99+
    2023-09-28
    文件 索引 load
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作