本篇博客讲的是MySQL的索引的功能和使用 , 以及存储引擎的基本简介 一. mysql索引 索引的简介和作用 索引在MySQL中叫做"键" , 是存储引擎用于快速找到记录的一种数据结构 . 索引对良好的性能非常关键 , 尤其是当表中的数据量越来越大时 , 索引对于性能的影响愈来愈发重要 . 作用 : 通过一定的算法将数据库中的记录按一定的规律进行分组 , 这样查信息时可以缩小数据的搜索范围 , 从而提高溜了查询效率 用生活实例来说 , 索引就好像书的目录 , 清单上的列表 ; 好比人去吃火锅 , 当菜单拿到客户手上 , 客户可以根据菜单上的分类(海鲜 , 蔬菜类 , 肉类 , 饮料类等) , 根据自己的口味能第一时间找到自己想吃的菜 . 索引的分类 索引可分为 : 普通索引 , 唯一索引 , 全文索引 , 单列索引 , 多列索引 , 空间索引 语法格式: CREATE TABLE 表名 ( 字段名1 数据类型 [完整性约束条件…], 字段名2 数据类型 [完整性约束条件…], [UNIQUE | FULLTEXT | SPATIAL ] INDEX | KEY [索引名] (字段名[(长度)] [ASC |DESC]) 示例 : 创建一个INDEX普通索引 CREATE TABLE dept( dept_id INT, dept_name VARCHAR(30) , comment VARCHAR(50), index (dept_name) # 将表中的dept_name字段指定为普通索引字段 ); 创建一个UNIQUE唯一索引: CREATE TABLE dept2 ( dept_id INT, dept_name VARCHAR(30) , comment VARCHAR(50), UNIQUE INDEX (dept_name) ); 相比普通索引来说 , 比上面的索引选项多了一个unique选项 创建一个全文索引; CREATE TABLE dept3 ( dept_id INT, dept_name VARCHAR(30) , comment VARCHAR(50), log text, FULLTEXT INDEX (log) )engine=myisam; 注: 只有MYISAM存储引擎支持全文索引,innodb存储引擎不支持全文索引 创建多列索引 CREATE TABLE dept13 ( dept_id INT, dept_name VARCHAR(30) , comment VARCHAR(50), INDEX (dept_name, comment) ); 相比普通索引来说 , 就是将多个字段设置为索引 对已存在的表创建索引 语法一: CREATE [UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名 ON 表名 (字段名[(长度)] [ASC |DESC]) ; 创建普通索引示例:此方法要指定索引名称 CREATE INDEX index_dept_name ON dept6 (dept_name); 创建唯一索引示例: CREATE UNIQUE INDEX index_dept_name ON dept6 (dept_name); 创建全文索引示例: CREATE FULLTEXT INDEX index_dept_name ON dept6 (dept_name); 创建多列索引示例: CREATE INDEX index_dept_name_ comment ON dept6 (dept_name, comment); 语法二: ALTER TABLE在已存在的表上创建索引: ALTER TABLE 表名 ADD [UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名 (字段名[(长度)] [ASC |DESC]) ; 管理索引: 查看索引: show create table 表名/G 测试索引: explain select * from 表名 where 字段名='xx'; 删除索引: drop index 索引名 on 表名 索引检测实例: 要求 : 创建一个school的数据库 , 创建一张t2表 , 用存储过程脚本t2表插入1000W条数据 , 然后查询t2数据看看花费了多长时间 ; 再为t2创建一个索引 , 再次查看数据看看所花费的时间 准备: create database school #创建school数据库 create table school.t2(id int,name varchar(30)); #创建一张t2表 , 里面记录id号和名字 定义一个插入1000W条数据的存储过程 , 并调用此存储过程 mysql> delimiter $$ //设置命令的界定符(也称为结束符) mysql> create procedure autoinsert1() //创建autoinsert1这个存储过程(类似于shell脚本) -> BEGIN -> declare i int default 1; -> while(i<100000)do -> insert into school.t2 values(i,'ccc'); -> set i=i+1; -> end while; -> END$$ mysql> delimiter ; call atuoinsert1(); 分两次查询数据 , 对比所花的时间(实验中途插入1000W条数据花了33分钟 , 插100W估计就能看出效果了): 从上述实验可以看到 , 在一个存放1000W的表中 , 查询一条数据跟创建索引后查询一条数据相差了4S的时间 , 随着数据更大 , 查询时间也会不断增大 , 所以足以证明 , 创建索引会大大提高MySQL的查询工作效率!!! 二. MySQL存储引擎介绍 了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型) 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。 1. 查看存储引擎 SHOW ENGINES; SHOW ENGINES/G 查看MYSQL支持的存储引擎 SHOW VARIABLES LIKE 'storage_engine%'; 查看当前的存储引擎 SHOW VARIABLES LIKE 'auto_inc%'; 查看自增长的设置状态 show global variables like '%connet%' 查看connet环境变量设置 mysql> show variables/G 查看所有的环境变量 show variables当前的会话 show global variables/G全局 2. 选择存储引擎 方法1. mysql> create table innodb1( -> id int -> )engine=innodb; mysql> show create table innodb1; create tables test100(id init)engine=inodb; 方法2. /etc/my.cnf [mysqld] 在此行下添加下面的一行内容 default-storage-engine=INNODB 由于该存储引擎不支持事务、也不支持外键,所以访问速度较快。因此当对事务完整性没有要求并以访问为主的应用适合使用该存储引擎。 由于该存储引擎在事务上具有优势,即支持具有提交、回滚及崩溃恢复能力等事务特性,所以比MyISAM存储引擎占用更多的磁盘空间。 因此当需要频繁的更新、删除操作,同时还对事务的完整性要求较高,需要实现并发控制,建议选择。 MEMORY MEMORY存储引擎存储数据的位置是内存,因此访问速度最快,但是安全上没有保障。适合于需要快速的访问或临时表。 BLACKHOLE 黑洞存储引擎,可以应用于主备复制中的分发主库。 使用BLACKHOLE存储引擎的表不存储任何数据,但如果mysql启用了二进制日志,SQL语句被写入日志(并被复制到从服务器)。这样使用BLACKHOLE存储引擎的mysqld可以作为主从复制中的中继重复器或在其上面添加过滤器机制。 |
免责声明:本站部分文章和图片均来自用户投稿和网络收集,旨在传播知识,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系我们及时修正或删除。谢谢!
始终以前瞻性的眼光聚焦站长、创业、互联网等领域,为您提供最新最全的互联网资讯,帮助站长转型升级,为互联网创业者提供更加优质的创业信息和品牌营销服务,与站长一起进步!让互联网创业者不再孤独!
扫一扫,关注站长网微信
前阵子,腾讯历时 4 年打造的“ 末日僵尸生存”游戏《 黎明觉醒》,终于上线。在前期宣发中,光子工作室表示,游戏采用虚幻四打造,画面大幅升级,还会出现可探 ......
1、首先我们开机,如果已经开了那就重启电脑, 开机进入图示的“英特尔logo”画面时,马上进行第二步。 2、在进入类似上方的logo界面时,快速按下键盘上的“del ......
继ChatGPT、文心一言之后,谷歌终于将自家对话式AI服务Bard开放测试。谷歌表示,公测将从美国和英国开始,开放更多用户访问是“改进它的下一个关键步骤”。与Cha ......
1、点击左下角开始,打开管理工具选择“高级安全windows防火墙”。 2、在左侧的任务栏中选择“入站规则”随后在右侧点击“新建规则”。 3、选择“端口”点击下 ......
1、打开“资源管理器”,即可查看七个文件夹。 2、在空白桌面出建立“文本文档”。 3、随后进入文本文档,复制黏贴下列代码。 Windows Registry Editor Versio ......
《霍格沃茨之遗》的热潮退去后,这款游戏的Steam在线人数从近88万跌至7.5万。推特上有“反恐同”人士嘲讽道:“哈利·波特在霍格沃茨住了7年,你们这些粉丝连2个 ......
在谷歌宣布生成式AI Bard开启公测后,微软研究院首席研究员Kate Crawford在社交媒体发布文章,质疑Bard的训练数据集调用了Gmail的数据。换言之,Crawford质疑谷 ......
答:appdata能删。 一般不建议删除,删除了之后容易造成应用程序配置丢失,可能在开启一些程序的时候会失败,严重清理还可能会导致无法启动。 里面有三个子文 ......
1、首先在桌面空白处右击选择个性化打开。 2、在打开的击界面点击打开右下角的屏幕保护程序。 3、在新开的屏幕保护界面就可以选择各种效果来保护屏幕了。 4、 ......
答:电脑guest的意思是给客人访问电脑系统的账户。 在系统之中被称作“来宾账户”这个账户一般没有修改系统设置的权限。 可以用作读作计算机系统的信息和文件, ......
答:administrator是系统管理员的意思,可以删除的。 这个单词的意思就是超级用户,是指电脑权限不受控的人。 删除是可以删除的,但是一定要在创建了第二个账户 ......
1、右击桌面此电脑,点击“属性”。 2、进入属性后点击“控制面板主页”。 3、在里面选择打开“程序和功能”。 4、随后在里面打开“启用或关闭windows功能” ......
1、开始菜单打开控制面板。 2、在控制面板中找到硬件和声音,点击打开。 3、在硬件和声音窗口中选择电源选项。 4、点击电源选项窗口左侧的更改计算机睡眠时间 ......
1、右键桌面上的网络图标,选择属性。 2、打开网络和共享中心,选择“管理无线网络“ 3、找到你的WiFi名称,右键删除,然后再重新搜索连接即可。...
方法一: 1、首先打开手机的“电话”功能。 2、接着拨打电话。 3、拨通后,点击“红色方块”的录音就可以开始通话录音了。 方法二: 1、我们也可以在通话时 ......
1、在开机界面重启三次后再次开机即可进入安全模式,点击“启用安全模式”。 2、随后点击左下角开始键,点击“设置”。 3、在windows设置中点击“应用”。 4 ......
一、来源不同 1、iso来源于系统光盘,gho来源于系统克隆文件。 二、使用方法不同 1、iso不需要解压缩,直接打开或刻录到光盘中读取就能安装。 2、gho需要解压运 ......
1、win+r打开运行窗口。 2、输入cmd命令,点击确定。就会打开管理员命令窗口。 3、输入命令regedit打开注册表 4、打开HKEY_CLASSES_ROOT,找到lnkfile,在其 ......
微软的DirectX(简称DX)是Widows平台的游戏API,现在大家玩的PC游戏绝大多数是基于DX,DX12问世也好几年了,现在要推出新一代的DX13了吗?微软最新的暗示给人无 ......
1、首先单击电脑开始键,选择控制面板。 2、打开后找到语言选项,点击“更改显示语言” 3、打开后点击“管理”按钮。 4、再点击下方的“更改系统区域设置” ......
1、首先进入“控制面板—用户账户—管理其他账户”, 即可查看登录的账户是不是管理员账户,不是的话就没有权限更改。 2、右击左下角开始键,点击“命令提示符 ......
1、打开QQ浏览器,点击“我的”,再点击右上角“设置”图标, 2、进入设置页面后,点击“清除浏览数据”, 3、勾选需要清除的缓存数据的记录, 4、点击“一键 ......
1、模拟器的gameprofiles文件里有这许多的不同ini文件, 其中00050000101C9300、00050000101C9400、00050000101C9500 分别代表塞尔达的三个版本, 2、在这些ini ......
答:电脑上一键ghost表示一个可以备份和还原系统的软件。 它直接翻译就是鬼或者幽灵,可以算是一个无人不知的程序。 基本包括了一键备份一键恢复和各种向导的功 ......
1、右击此电脑,点击打开“属性”。 2、随后进入点击左侧任务栏中的“高级系统设置”。 3、接着点击任务选项卡中的“系统保护”。 4、进入系统保护后点击下方 ......
答:非常不错。 这个软件的功能非常的强大,有着很多的优质图书资源,而且很多都是免费就可以观看的。 点众阅读介绍 软件特色 1、阅读没有广告,非常流畅, ......
1、打开菜鸟APP,点击包裹取件码下方的一键取件。 2、选择要取的包裹,点击全部取出。 3、在弹出的窗口中选择立即提交。 记得提交之后在15分钟内到站取包裹哦 ......
很多网友喜欢在淘宝平台的聚划算模块中购买产品,意味着你的商品价格非常实惠。淘宝聚划算模块中没有搜索框,那么如何在这里搜索想要的商品呢?下面为大家进行解 ......
1、右击右下角托盘区中的蓝牙图标,点击“打开设置”。 2、在弹出对话框中选择“允许蓝牙设备查找这台电脑”。 3、右击左下角开始键,选择进入“设备管理器” ......