mysql数据库基础

索引

索引-基数.png

什么是索引

  • 快速寻找那些具有特定值的记录,所有mysql索引都以B-树的形式保存。
  • 如果没有索引,执行查询时mysql必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里的记录越多,这个操作的代价就越高
  • 如果作为搜索条件的列上已经创建了索引,mysql无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍

创建unique索引的目的:避免数据出现重复

唯一索引可以有多个但索引列的值必须唯一,索引列的值允许有空值。
如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引时就应该使用关键字unique

索引基数:数据中所包含的不同值的数量。

eg:[1,2,3,4,5,1],则他的基数是5
(索引的基数/数据表行数)越大,工作效率越好
如果值出现的几率几乎相等【性别】,无论搜索哪个值都可能得到一半的数据行,那么索引的用处就不大。在这种情况最好根本不要用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高时,它一般会忽略索引直接进行全表扫描,惯用的百分比界线是30%

redis

redis:REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。


redis安装.png
启动redis: redis-server.exe redis.windows.conf
Redis::hset($key, 'id', $id);  // 如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。
Redis::hgetall('id');  //以列表形式返回哈希表的字段及字段值。 若 key 不存在,返回空列表。
Redis::hget('id');   // 返回哈希表 key 中给定域 field 的值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容