数据库瓶颈的主要原因
1) 数据库设计缺陷;(表空间设计、数据库表设计、数据库存储过程设计,字段设计不合理)
2) 数据库配置缺陷(连接数配置,资源分配设计)
3) 数据库架构缺陷(选择了不合适的数据库管理系统,硬件架构不合理,硬件配置过低)
4) SQL语句设计不合理
5) 数据库索引建立不合理
优化方案
1) 基于应用性能设计数据库,保证合理的表空间,数据回滚,确定数据库表之间的逻辑关系,确认是单表还是多表,建立合理的主外键关系,注意字段类型设计、注意Null值。
2) 关注连接数设计、关注数据库资源调度
3) 配置足够的硬件要求,考虑CPU、内存、磁盘IO,考虑数据库集群;注意选择合适的数据库管理系统
4) 优化SQL
5) 优化索引
优化数据库对象
优化表的数据类型
在MySQL中,可以使用函数PROCEDURE ANALYSE()对当前应用的表进行分析,该函数可以对数据表中列的数据类型提出优化建议,用户可以根据应用的实际情况酌情考虑是否实施优化。
以下是函数PROCEDURE ANALYSE的使用方法。
SELECT * FROM tb1_name PROCEDURE ANALYSE()
SELECT * FROM tb1_name PROCEDURE ANALYSE(16,256)以上第二个语句告诉PROCEDURE ANALYSE不要为那些包含的值多于16个或者256字节的ENUM类型提出建议。通过拆分提高表的访问效率
第一种方法是垂直拆分,即把主码和一些列放到一个表中,然后把主码和另外的列放在另外一个表中。这种方法适用于一个表中某些列比较常用,而另外一些列不常用。其优点是可以使得数据行变小,一个数据页能存放更多的数据,在查询时就会减少IO次数。缺点是需要管理冗余列,查询所有数据需要联合操作。
第二种方法是水平拆分,即根据一列或者多列数据的值把数据行放到两个独立的表中。
2343

被折叠的 条评论
为什么被折叠?



