今天继续给大家介绍MySQL的相关知识,本文主要内容是MySQL架构和使用优化
一、数据库设计与规划
在生产环境中,对数据库的设计和规划要根据不同的业务场景来进行,并根部不同的要求采取不同的技术。总得来看,数据库在设计时要想增强性能,可以才用的主要是有纵向拆解和横向拆解两个思路。
所谓纵向拆解,就是指在资源和经费允许的情况下,单机单用,把提供WEB前端服务的设备与提供数据库服务的设备分割开,避免他们之间互相争用系统资源,避免了性能下降和架构的不稳定性。
所谓横向拆解,就是指当纵向拆解后,单个数据库还是无法达到性能需求时,可以考虑采用主从同步、读写分离、负载均衡、集群、高可用等手段,将多个数据库组成集群,共同提供数据服务支持,同时避免单点故障, 以达到稳定、高效的效果。
二、查询SQL语句优化
在生产环境中,查询的SQL语句占了所有数据库交互命中大多数,因此,对查询的SQL语句进行优化是进行数据库优化,提升数据库性能的一项重要手段。对查询SQL语句的优化主要可以采用以下思路:
1、合理的建立数据表的结构,避免单个数据表过大。例如,查询含有10万条数据的表比查询10个含有1万条数据的表所花费的时间要多。同时对于数据表中的字段要选择合适的类型,以有利于节省空间和查询速度。
2、要根据业务场景建立合适的索引,索引并非越多越好,但是在经常查询的列可以考虑建立索引来节省时间。
3、在查询时,要巧妙的选用SQL语句,尽量减少逻辑运算。
4、减少查询无关的列,在select查询语句中,需要哪一列就查询哪一列。并且,永远不要使用select *语句,尽管该语句在写法上非常方便,但是实际上,在执行该命令的时候,数据库需要花费额外的资源,来查询该数据表究竟有哪些列。
5、慎重使用事务,虽然事务在功能上相当强大,但是事务的实现本身是借助锁的机制,会极大的消耗系统资源。
6、建立和使用存储过程,来减少系统消耗和与外界系统的交互。
7、不要出现过于复杂的查询,当必须这么做时,可以把这些查询语句分解成多个小的查询语句;但是,对于一些本身不是很复杂的查询,又可以把多个小的查询语句组合成一个大的查询语句,以此来减少每次建立查询链接的消耗。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200