msql的一些基本知识

1. 索引的实现

索引都是使用b+树实现的

myisam实现分离索引,把索引单独保存在一个文件中,并且进行压缩,非主键的查询比较快

innodb实现cluster索引,文件本身就是按照索引排列的,主键查询比较快,但是非主键查询需要


2. myisam和innodb的区别

myisam使用索引和数据分离实现,并且对索引进行压缩,文件易于替换

innodb把索引和数据捆绑实现,索引本身即是数据文件,按照b+树格式存储(用主键做的cluster索引),没有进行压缩,文件较大,不易替换


myisam使用表锁,并且在非主键select查询时速度较快。()

innodb使用行锁,不过只对主键有效。在update的时候速度较快(因为cluster索引导致主键查询非常快,而且其他key只能通过主键查找其他索引),但是对于insert,使用主键自增会比较快。


myisam把select count(*)保存起来

innodb使用select count(*)的时候需要实时查找数据


3. explain用来对数据库进行一些分析,以便于优化

http://www.blogjava.net/persister/archive/2008/10/27/236813.html


4. mysql的查询缓存和key缓存在相关数据修改后会失效。


5. join使用nested loop join,一个表连接后依次连接其他表。

select user.id, user.name, map.name from user,map where user.idmap = map.id;

select user.id, user.name, map.name from user join map on user.dimap = map.id;

2者的区别在于第一个查询出user和map表的所有非空字段,然后进行对比。

第二个查询user表的所有非空字段,再对map表的所有非空字段对比,最后得出结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种开源的关系型数据库管理系统(RDBMS),它是最流行的数据库之一。以下是MySQL的一些基本知识: 1. 数据库:MySQL是用于存储和管理数据的软件。它可以创建多个数据库,每个数据库可以包含多个表。 2. 表:表是MySQL中存储数据的基本单位。每个表由一组列和行组成。列定义了表中的数据类型,行包含了实际的数据。 3. 列:列是表中的一个字段,用于存储特定类型的数据。每个列都有一个名称和数据类型。 4. 行:行是表中的一个记录,它包含了一组相关的数据。每个行都有一个唯一的标识符,称为主键。 5. 主键:主键是用于唯一标识表中每个行的列。它确保了每个行都有一个唯一的标识符,以便于检索和更新数据。 6. SQL:SQL(Structured Query Language)是用于与数据库进行交互的语言。MySQL使用SQL语言来创建、查询、更新和删除数据库中的数据。 7. 查询:查询是通过使用SQL语句从数据库中检索数据的过程。常见的查询操作包括SELECT、INSERT、UPDATE和DELETE。 8. 索引:索引是一种数据结构,用于提高查询性能。它可以加快数据的查找速度,类似于书籍的目录。 9. 连接:连接是将多个表中的数据关联起来的过程。通过连接操作,可以根据共同的字段将数据从多个表中组合在一起。 10. 视图:视图是虚拟的表,它是基于一个或多个表的查询结果。视图可以简化复杂的查询操作,并提供了一种安全的方式来访问数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值