MYSQL(mysql)数据库索引设计及原理

现在无论是网站还是app项目开发,很多公司都在使用mysql数据库,但是随着数据量的不断增加,我们会发现项目的运行时间会逐渐延长,导致用户体验效果不好,下面我们就针对数据库的这个问题进行分析:

一:

1、数据库引擎:myisam、innodb,memory;

2、常见使用myisam和innodb引擎的比较多,就myisam而言,在建立索引的前提下,它的查询速度非常快,但是随着业务的复杂化,在数据量逐渐变大的情况下,它的读写速度会变慢,如果做大型项目不建议使用myisam,另外它不只是高级功能(如事务,外键等);

3、本人建议使用innodb,它本身支持行级锁,支持外键、事务等高级功能,而且在数据量逐渐变大的情况下,读写速度反而更快,相对来讲更加适用,另外一点就是mysql5.6版本以后,它也支持全文搜索。

4、memory引擎支持全表锁,将数据存储在内存中,执行速度快,但会占用和数据量成正比的内存空间,缺点是在mysql重启后数据会丢失。本人不建议使用。

二:

1、为增加查询反应的效率,增设索引,包括唯一索引,主键,和复合索引。当然不是所有地方都要加,具体情况具体分析.

2、优化sql语句,举例:尽量不要select * ,而是查询你所需要的字段信息如select article;

3、建议使用事务;

4、建议根据具体情况,使用独占锁和共享锁;

5、连表查询使用join连接,不建议使用子查询,原因是使用子查询时会在数据库里建立索引关系文件,增加对物力空间占用,IO开销很大,cpu运算更高,反而影响反应效率。

还有很多mysql优化方案,以上方案比较常用。

三:

原理:对常使用的查询条件,合理的增设索引,建立索引管理,增加查询效率,用户体验会更好,举个例子:在没有建立索引时,整个数据库就好像一个很高的大树,在查询时IO开销大,cpu运算荷载效率高,查询速度慢,当建立对应关系索引后,整个数据库可能就变矮了一半,反而降低了IO开销,cpu运算荷载小,加快了查询的反应速度,更好的满足客户体验效果。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值