数据库的索引,统计,存储,设计

本文探讨了数据库设计的关键原则,如使用主键和外键建立索引以提高查询效率,以及选择合适的数据类型和避免滥用用户变量。还提到了MySQL的存储引擎特性,如InnoDB的MVCC和MyISAM的表级锁。此外,强调了数据库性能优化,包括使用基准测试、查询日志以及事务的ACID属性。
摘要由CSDN通过智能技术生成
索引:数据结构指向数据
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。
                    提取句子主干,就可以得到索引的本质:索引是一种数据结构。
索引:数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构就是索引

InnoDB的辅助索引data域存储相应记录主键的值而不是地址

MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形。

MySQL的优化主要分为结构优化(Scheme optimization)和查询优化(Query optimization)。
索引属于结构优化

不建议建索引的情况(索引文件本身要消耗存储空间,同时索引会加重插入、删除和修改记录时的负担,
                另外,MySQL在运行时也要消耗资源维护索引)
第一种情况是表记录比较少
第二种选择性较低(选择性:不重复的索引值)

在使用InnoDB存储引擎时,如果没有特别的需要,请永远使用一个与业务无关的自增字段作为主键。(最好设置自增的字段)

1.聚集索引不仅仅是一种单独的索引类型,
    而且是一种存储数据的方式。
    Innodb引擎的聚集索引实际上在同样的结构中保存了B-Tree索引和数据行。
    表有聚集索引时,它的数据行实际上保存在索引的叶子上。注意是存储引擎来实现索引
    
    
主键    唯一键 外键  索引
A:主键一定是唯一键,但唯一键不一定是主键
B:b表的一个字段是a表的主键,那么b就是a的外键 (b表的外键,指向的就是 a表的主键)

主键:能够唯一标识表中某一行的属性或属性组。
    一个表只能有一个主键,但可以有多个候选索引。
    主键常常与外键构成参照完整性约束,防止出现数据不一致。
    主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引。

外键
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值