美文网首页我爱编程
mysql性能与优化

mysql性能与优化

作者: LeftJoin | 来源:发表于2018-04-16 01:10 被阅读0次
1.影响sql的原因
    - 超高的效率低下的sql,qps超高
    - 大量的并发 数据库连接数被占满(max_connections默认100)超高的cpu使用率 因cpu资源耗尽而出现死机
    - 磁盘IO性能突然下降(使用更快的磁盘设备)其它大量消耗盘性能的计划任务
    - 网卡IO被占满 (减少从服务器的数量,进行分级缓,避免select *,分离业务网络)
    - 大表(记录行数巨大,单表超过千万行,表文件巨大,表数据文件超过10G)
2.什么是锁
    - 锁对主要作用是管理共享资源的并发访问
    - 锁用于实现事务的隔离性
共享锁    独占锁
阻塞 与 死锁不一样

阻塞     数据库阻塞的现象:第一个连接占有资源没有释放,而第二个连接需要获取这个资源。如果第一个连接没有提交或者回滚,
第二个连接会一直等待下去,直到第一个连接释放该资源为止。对于阻塞,数据库无法处理,所以对数据库操作要及时地提交或
数据库死锁  数据库死锁的现象:第一个连接占有资源没有释放,准备获取第二个连接所占用的资源,而第二个连接占有资源没有释放,准备获取第一个连接所占用的资源。这种互相占有对方需要获取的资源的现象叫做死锁。对于死锁,数据库处理方法:牺牲一个

连接,保证另外一个连接成功执行。
如何选择正确的引擎
 -事务 - 备份 -崩溃恢复  -存储引擎自有特性 
3.数据库设计对性能的影响
     过份的反范式为表建立太多列
     过份的范式造成太多表关联
     使用不巧当的分区
     使用外键保证数据太多保证完整性
数据库结构优化
1.减少数据冗余
2.尽量避免数据库维护中出现更新,插入和删除异常
3.节约数据存储空间
4.提高查询效率
数据库结构设计
三范式 
1.第一范式
数据库表中的所有字段都只具有单一属性
单一属性的列是由基本的数据类型所构成
设计出来的表都是简单的二维表
2.第二范式
要求符合第一范式,消除了非主属性对于码的部分函数依赖
3.第三范式
属性不依赖于其它
优点  
      可以尽量减少数据冗余,数据表更新体积小  
      范式化更新操作比反范式化更快
      范式化表通常比反范式化更小
缺点
      查询需要多个表进行关联
      更难进行索引优化
mysql复制

相关文章

网友评论

    本文标题:mysql性能与优化

    本文链接:https://www.haomeiwen.com/subject/upudkftx.html