数据库优化(由浅到深)

数据库优化这块,先遵守基本原则

一、表的设计:采用三泛式和反三范式原则,在有些经常查询的表可以适当设置冗余字段,因为这样能减少关联外表查询,可以提高查询效率,根据业务不同设计表的引擎类型也不同,经常查询居多的可以设计成Myisamy不支持事务的引擎Myism引擎表,经常修改居多的可以设计成支持事务的引擎innodb表,根据唯一性很强的字段设定索引,设置索引适用于经常不频繁修改的字段;

二、变多次维护为一次维护,追加数据的时候可以禁用索引,添加完之后启用索引,多条插入语句可以写成一条。

三、sql语句优化,在where和order by的子句里面尽量避免使用null、in、not in、<>、or等关键字,前置模糊查询也会让索引失效,它们会让表自动放弃索引查询变成全文扫描,这样大大降低了查询效率;

四、分表,垂直分表和水平分表,水平分布常用的有三种方式,时间分表、区间分表、hash取余分表,时间分表多用于不经常查询以前记录,比如微博只展示三天内动态,区间分表用于那种累积形式的数据,id对100取余加1获取hash值;

五、分区,可以通过范围分区、list分区、key分区,分区只是把一张表存储数据的空间分成多个区域,可以支持大量的IO;

六、多机集群,大致分为三步,主从同步、读写分离、主备切换,一两个数据库肯定支持不了大量的数据访问请求的,所以要集成多个数据库,在多个数据库里确定一个主数据库用于插入数据,然后查询通过从数据库查询出来,主从同步就是在主数据库插入数据后把数据生成一个二进制的文件,并授权一个账号,然后从数据库利用账号把二进制文件解析到自己库里,发送请求到数据库,它不知道该访问哪个数据库,这时就要通过一个负载均衡器来分发请求给主从数据库,负载均衡器管理着主从数据库的ip和端口号,自己也向外暴露一个请求能访问的ip,负载均衡器的配置文件通过管理主从数据库的ip和端口号来指定数据库是查询还是添加修改,这就做到了读写分离,如果出现单点故障就是负载均衡器挂了,最好的解决办法是使用备用负载均衡器,主的均衡器和副的均衡器通过第三方插件keepalive来建立联系,它们之间会一直发送心跳查询,如果主的挂了马上切换到备用负载均衡器;

测试在没有索引的条件下测试查询速度和有索引之后

定位慢查询  

   查询系统定义的慢查询时间  show variables like  'long_query_time'

开启慢查询

   关闭原来的服务

   然后以支持慢查询的方式启动

   设置慢查询时间 set long_query_time=0.5

   构造慢查询(查询语句)

   查看有几条慢查询 show status like 'slow_query'

分析慢查询  查看data下面的slow.log

   explain  sql语句

   type如果为all 表示全表扫描 possible_keys 可能用到的索引 如果为null则没有索引 key表示实际使用的索引 如果为null则没有使用索引 全表扫描  rows 扫描行数

行锁优化建议

1、避免无索引行级升级为表级锁,尽可能让所有数据检索都通过索引来完成

2、合理设计索引,尽量缩小锁的范围

3、尽可能减少检索条件,避免间隙锁

4、尽量控制事务大小,减少锁定资源量和时间长度

5、尽可能使用低级别的事务隔离

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《数据库系统原理》是一本广泛使用的数据库教材,被广泛应用于计算机和信息技术领域的专业课程中。据我所知,在大多数大学的数据管理和数据库管理课程中都会使用这本书作为教材。 在这本书中,黄靖教授详细介绍了数据库系统原理的基础知识和理论,包括关系型数据库设计、数据模型、事务处理、ACID 特性、索引等等。除此之外,黄靖教授还涵盖了现代数据库系统应用的热门话题,如NoSQL数据库和大数据处理等。 此外,这本书还介绍了SQL语言的使用和数据库实现的实际问题,丰富了读者对数据库领域的理解和知识。这些知识可以帮助学生们更好地掌握数据库技术,为未来的职业生涯打下扎实的基础。 总体来说,黄靖教授的《数据库系统原理》是一本对于计算机科学、信息科技和计算机工程领域的学生来说,必不可少的数据库教材。它详细讲解了数据库系统的各个方面,从理论到实践,为读者提供了全面和入的知识。 ### 回答2: 《数据库系统原理》是一本经典的数据库系统原理教材,该书由黄靖编写,内容涵盖了数据库系统的理论基础、存储管理、查询优化、事务管理和并发控制等方面的知识。 本书首先介绍了数据库系统的概念和体系结构,并详细讲解了关系数据库的基本概念、关系模型和关系代数等知识。此外,还介绍了存储管理的相关知识,包括磁盘存储系统、文件组织和索引等。 在查询优化的方面,本书详细介绍了查询处理的各个阶段以及查询优化的实现方法。此外,在事务管理和并发控制方面,本书也给出了详尽的介绍,涵盖了事务管理的概念、事务的隔离级别和锁的类型等知识。 最后,本书还介绍了数据库系统的安全、完整性与可靠性等方面的知识,给读者提供了全面的数据库系统学习资源。 总之,黄靖编写的《数据库系统原理》是一本权威的数据库系统原理教材,在学习数据库系统的相关知识时,不可或缺。 ### 回答3: 《数据库系统原理》是一个广泛使用的数据库教材,作者是黄靖。该教材出地讲解了数据库系统的原理及其应用,包括关系数据库理论、SQL语言、数据库设计、数据完整性以及安全性等方面。 这本教材全面而详细地介绍了数据库系统的概念、原理及其实现,涵盖了数据库基础知识、数据库设计与规范化、数据安全与完整性、SQL查询语句、索引与查询优化等核心内容。书中的例子和实践案例都很典型,有助于读者加对数据库系统的理解和实践能力。 此外,《数据库系统原理》还介绍了一些最新的数据库技术,如数据挖掘、数据仓库、分布式数据库等。这些内容有效地扩展了数据库系统的应用领域,并帮助读者了解和掌握当前数据库领域的前沿技术。 总之,《数据库系统原理》是一本权威而全面的数据库系统教材,对于计算机、信息科学、管理信息系统和其他相关专业的学生和从业人员来说,都是一本不可或缺的参考资料。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值