mysql怎么实现生日字段前一个小时提醒_MySql学习笔记(二) 索引的设计和使用...
-- 对test表的name字段的前5个字段检索索引create index name_index on test(name(5))-- 当然,我们也可以看看我们的索引在检索的时候是否被使用了explain select * from test where name!=''
-- 如果您要删除索引drop index name_index on test;
索引创建的原则
1.不一定要选择所有选择的列,最适合索引的列是出现在where字句中的列,而不是select中的列2.使用唯一索引,考虑某个列值得分散。索引的列的基数越大索引效果越好。例如存放出生日期的列具有不同值,很容易区分,而使用性别的话区分度不大。3.使用短索引,如果对字符串进行索引,应该指定一个前缀长度,比如一个字段varchar(300),但是前10到20字段就能区分,那么在前10到20个字符上建立索引就可以区分很多数据,而且还可以节省索引空间。磁盘io也会变少,而且mysql在内存中可以存储更多的缓存,所以检索会变快。4.利用最左前缀,在创建一个n列索引的时候,实际上创建了mysql可利用的n个索引,多列索引可起多个索引的作用,但是匹配的时候都是通过最左进行的。5.不要过度索引,每个索引都要占据磁盘空间,并降低写操作的性能,在修改表的时候索引也要同步更新甚至重构,所以索引越多会带来一定的损耗。所以说如果一个索引经常不用那么这个索引就是负担。所以的创建索引要以优化检索为目的,但不能损耗插入的性能。6.innodb表默认是按照一定顺序存储的,也就是说如果指定了主键则按照主键顺序进行保存,如果没有主键但是有唯一索引,那么innodb会按照唯一索引的顺序进行存储,如果都没有的话,innodb会生成一个内部列并按这个列的顺序进行存储。检索的时候按主键或者内部列是最快的。所以innodb表最好指定主键,另外innodb表的普通索引也会存储主键的键值,所以在设置主键的时候尽量选用短数据类型,从而减轻索引的磁盘空间,提高索引的缓存效果。
Btree和Hash索引
memory可以选择btree和hash索引,但是hash索引的使用要注意哦!因为hash索引是通过计算得出的具体数据地址,索引hash索引肯定不能使用= 或者》= 和《=等运算符,当然也不能使用order by进行排序。hash索引只能通过关键字来检索一行数据。对于in查询来说,btree和hash索引并没有什么差别。在对范围进行查询的时候,只能使用btree索引。如果对hash索引采用范围查询,那么将是全表扫描式的检索。要注意的是memory表的默认索引模式为hash索引。大多数的mysql索引,比如primary key、unique、index、fulltext等都是在btree中存储,除此之外memory还支持hash索引。
mysql怎么实现生日字段前一个小时提醒_MySql学习笔记(二) 索引的设计和使用...相关推荐
- mysql原生建立索引_MySQL学习笔记之索引
索引是存储引擎用于快速找到记录的一种数据结构. 索引对于良好的性能非常关键.尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要.在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但 ...
- mysql 查找相似数据_MySQL学习笔记之索引
索引是存储引擎用于快速找到记录的一种数据结构. 索引对于良好的性能非常关键.尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要.在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但 ...
- mysql数据类型选择_MySQL学习笔记(二):MySQL数据类型汇总及选择参考
本文主要介绍了MySQL 的常用数据类型,以及实际应用时如何选择合适的类型. ******几个通用的简单原则:******* 1. 更小的通常更好.但是要确保没有低估需要存储的值的范围,如果无法确定哪 ...
- mysql对所有id求积_MySQL学习笔记(二)—查询
一.多表连接查询 新建两张表t_user.t_order. 1.内连接 返回满足条件的所有记录. (1)显式内连接 使用inner join关键字,在on子句中设定连接条件. SELECT ...
- MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02
MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02 6. 锁 人们认为行级锁总会增加开销.实际上,只有当实现本身会增加开销时,行级锁才会增加开销.InnoDB 存储引擎不需要锁升级,因 ...
- MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01
MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01 1. MySQL体系结构和存储引擎 1.1 定义数据库和实例 数据库database: 物理操作系统文件或其他形式文件类型的集合. 当使 ...
- Mysql学习笔记(二)——表格及数据的插入
Mysql学习笔记(二)--表格及数据的插入 文章目录 Mysql学习笔记(二)--表格及数据的插入 1.Mysql常用指令 2.创建表格 A.数据类型 B.完整性约束条件 3.查看表格 4.修改表格 ...
- mysql select语句详解_mysql学习笔记之完整的select语句用法实例详解
本文实例讲述了mysql学习笔记之完整的select语句用法.分享给大家供大家参考,具体如下: 本文内容: 完整语法 去重选项 字段别名 数据源 where group by having order ...
- mysql 加号的作用_MySQL学习笔记(一)
MySQL学习笔记(一) 作者:易成勇 案例来源:AI技术前线 MySQL常用命令 1.查看当前所有数据库 show databases; 2.打开指定的库 use 库名 3.查看当前库的所有表 sh ...
最新文章
- GNN教程:与众不同的预训练模型!
- ASP.NET在IIS7中上下文中不可用
- linux日常管理-防火墙selinux
- 苹果iPhone SE 2概念视频放出:全面屏的小屏机
- Python 面向对象高级编程——定制类
- CodeBlocks调试功能(转)
- 【paper and code】StarGAN
- hutool excel导出
- 使用ConfuserEx实现项目加密
- DG449 High Voltage Single SPDT Analog Switch in SOT23-8
- 任正非《一江春水向东流》读后感
- python中引号的使用规范_Python中单引号和双引号的作用
- Buffon's Needle An Analysis and Simulation------蒙特卡洛法模拟蒲丰(Buffon)投针实验-使用Matlab
- Win7 下安装 Visual Studio 2008 失败的解决办法
- 登陆验证码图片不显示解决办法
- 孙陶然:有态度就是进取
- ker矩阵是什么意思_用初等变换求逆矩阵的小小解释
- 免费小程序制作平台体验感受分享
- AI大事件 | WaveNet推出了谷歌助手,苹果发布CoreML转换器
- [手机分享]黑莓手机9系列分享之——黑莓9630
热门文章
- 计算机网络——TCP/IP参考模型和五层参考模型
- python selenium模拟键盘_SELENIUM自动化模拟键盘快捷键操作实现解析
- c++ vector用另一个vector初始化
- can't request region for resource [mem 0xfed40080-0xfed40fff]问题的解决办法
- RecyclerView拖拽排序和滑动删除实现
- 【年度回忆录】如何做到1年90000粉丝?
- 安卓逆向_25 --- 密码学 之 《Java加密与解密的艺术》
- 安卓逆向_15( 三 ) --- Android NDK 开发【 jni 静态注册、JNI_OnLoad 动态注册】
- linux 的 grep 命令 和 ngrep 命令
- 扩展立方体 The Scale Cube