03 数据库调优

# 问题
数据库调优的方式有哪些?
# 答案
无论何种数据库,数据都是存储在硬盘,硬盘的读写效率是数据库存取速度的第一决定性因素,例如固态硬盘和机械硬盘的速度便有显著的不同。在基础物理存储介质确定的情况下,数据库本身的设计变成了决定性因素,我们继续缩小数据库范围到mysql去进行讨论。总的原则是选择那些执行速度快的语句或者进行空间和时间的适当交换,具体的在程序员层面我们可以采取的步骤有:
* 使用InnoDB存储引擎,并发性能更好、资源利用率更高
* 使用UTF8字符集,无乱码风险且省空间
* 表必须有主键
* 减少使用外键,使用程序控制外键完整性约束,减少或者避免表连接
* 在区分度高、较少进行更新的字段上建立索引
* 不读取不需要的列,即不使用 "select *"
* 多使用between、 exists ,"in"次之,不要使用"or"
* 不使用模糊查询
* 不要在where字句的列上使用函数
* sql语句大写
等等。
另外,数据量多到一定程度,无论采取何种策略都是杯水车薪,我们应该避免大表的存在,如若大表存在不可避免,应当考虑使用mycat进行读写分离和分库分表,甚至使用hbase等大数据技术亦是一种选择。

猜你喜欢

转载自www.cnblogs.com/alichengxuyuan/p/12594307.html