博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql优化的相关知识
阅读量:5751 次
发布时间:2019-06-18

本文共 1182 字,大约阅读时间需要 3 分钟。

  hot3.png

1.事务特性:	原子性>事务由原子的操作序列组成,所有操作要么成功,要么全部失败回滚	一致性>执行前后,数据库都是一致状态。比如在做多表操作时,要么都是事务后的新值,要么是事务前的旧值	隔离性>指多个用户并发请求时,不同的事务之间要相互隔离	持久性>指事务提交后,数据是永久性的。即便系统遇到故障,也不会丢失提交事务的操作。2.关于锁	myIsam使用表级锁,innodb使用行级锁。表锁开销小,加锁快,不会出现死锁,但是锁的粒度大,发生冲突的概率高,并发访问效率低。	行级锁开销大,加锁慢,有可能出现死锁,粒度小,发生冲突的概率低,并发访问效率比较高3.mysql索引  可以大幅度增加数据库的查询性能,在实际业务场景中,都会使用到。	索引代价:1>需要额外的磁盘空间来保存索引  2>对于插入、更新、删除等操作,会增加额外的开销	唯一索引:索引列中值必须唯一,可以是空值	主键索引:一种特殊的唯一索引,不可以是空值	普通索引:索引有相同的值	联合索引:多个字段组成的索引,保持着依次查询的查询使用的原则4.索引的实现方式:	1>B+树实现   2>R-tree  3>Hash   4>FullText5.mysql调优的4个纬度	1>针对数据库设计、表结构、索引设置进行优化	2>对业务中使用sql进行优化,调整where查询条件	3>对配置进行优化,如连接数的管理,索引缓存、查询缓存、排序缓存等进行优化	4>对硬件设备和操作系统优化,调整操作系统参数、加内存、升级固态硬盘、禁用swap (开启后,当别的程序内存不够时,会占用mysql存储空间)6.结构和索引的优化原则	1>保持表的数据量在KW级别   如果预计有更多数据,提前按用户或时间分库分表	2>保留扩展的前提下,选用较小的数据类型  如年龄选择tinyint不要使用int	3>将字段多的表分解   必要时加中间表,一张表超过40个字段不是一个好的设计	4>要满足第三范式,会拆出多表,查询时进行多表关联,会降低范式要求,在表中保存一定的冗余信息,要一定适度	5>为经常使用的字段加索引,创建联合索引、唯一索引等。	6>列字段尽量设置not null,mysql难以对null字段进行查询优化,会使索引、统计和值更加复杂,null值还会需要更多的存储空间以及特殊处理。7.sql语句的优化	1>查询最频繁的语句,通过慢查询日志发现需要进行优化的sql	2>学会利用分析工具explain分析语句的执行计划,是否用了索引、扫描了多少记录等。或者利用profile命令分析某个语句执行过程中的耗时	3>尽量的使用预处理语句,防止sql注入	4>避免使用select * ,尽量在有索引的字段上进行排序操作。

转载于:https://my.oschina.net/ives/blog/3035489

你可能感兴趣的文章
C语言及程序设计提高例程-35 使用指针操作二维数组
查看>>
华大基因BGI Online的云计算实践
查看>>
排序高级之交换排序_冒泡排序
查看>>
Cocos2d-x3.2 Ease加速度
查看>>
[EntLib]关于SR.Strings的使用办法[加了下载地址]
查看>>
中小型网站架构分析及优化
查看>>
写shell的事情
查看>>
负载均衡之Haproxy配置详解(及httpd配置)
查看>>
标准与扩展ACL 、 命名ACL 、 总结和答疑
查看>>
查找恶意的TOR中继节点
查看>>
MAVEN 属性定义与使用
查看>>
shell高级视频答学生while循环问题
查看>>
使用@media实现IE hack的方法
查看>>
《11招玩转网络安全》之第一招:Docker For Docker
查看>>
hive_0.11中文用户手册
查看>>
hiveserver2修改线程数
查看>>
XML教程
查看>>
oracle体系结构
查看>>
Microsoft Exchange Server 2010与Office 365混合部署升级到Exchange Server 2016混合部署汇总...
查看>>
Proxy服务器配置_Squid
查看>>