怎么做网站一个平台,seo网站源码,电子商务网站硬件需求,制作app的公司SQL优化
插入数据
insert优化 1#xff09;批量插入 insert into tb_user values(1,Tom),(2,Cat),(3,Jerry); 2#xff09;手动提交事务
mysql 默认是自动提交事务#xff0c;这样会导致频繁的开启和提交事务#xff0c;影响性能 start transaction insert into tb_us…SQL优化
插入数据
insert优化 1批量插入 insert into tb_user values(1,Tom),(2,Cat),(3,Jerry); 2手动提交事务
mysql 默认是自动提交事务这样会导致频繁的开启和提交事务影响性能 start transaction insert into tb_user values(1,Tom),(2,Cat),(3,Jerry); insert into tb_user values(4,Tom),(5,Cat),(6,Jerry); insert into tb_user values(7,Tom),(8,Cat),(9,Jerry); commit; 3主键顺序插入
主键乱序插入会导致索引页频繁的进行页分裂导致性能降低具体参见主键优化中的内容。 主键乱序插入8 1 9 21 88 2 4 15 89 5 7 3 主键顺序插入1 2 3 4 5 7 8 9 15 21 88 89 大批量插入数据
如果一次性需要插入大批量数据使用insert语句插入性能较低此时可以使用mysql数据库提供的load指令进行插入操作如下 需要三步 1、客户端连接服务端时加上--local-infile mysql --local-infile -u root -p 2、设置全局参数local_infile为1开启从本地加载文件导入数据的开关 set global local_infile1 3、执行load指令将准备好的数据加载到表结构中。 load data local infile ‘地址例如/root/mysql1.sql’ into table 表名称例如table_name) fields terminated by , lines terminated by \n 主键优化
数据组织方式
在InnoDB存储引擎中表数据都是根据主键顺序组织存放的这种存储方式的表称为索引组织表Index Orgnized Table IOT mysql的逻辑存储结构如下 页分裂
页可以为空也可以填充一半也可以填充100%每个页包含了2-n行数据如果一行数据过大会行溢出根据主键排列。
主键顺序插入 主键乱序插入 主键乱序插入会造成页分裂应该尽量避免这种现象。
页合并
当删除一行记录时实际上记录并没有被物理删除只是记录被标记flaged为删除并且它的空间变得允许被其他记录声明使用。
当页中删除的数据超过MERGE_THRESHOLD(默认为页的50%)InnoDB会开始寻找最靠近的页(前或后)看看是否可以将两格页合并以优化空间使用 小贴士 MERGE_THRESHOLD合并页的阈值可以自己设置在创建表或创建索引时指定。 ⭐️主键设计原则
满足业务需求的情况下尽量降低主键长度。因为二级索引的页节点存储的是主键 插入数据时尽量选择顺序插入选择AUTO_INCREMET的自增主键。
尽量不要使用UUID做主键或者其他自然主键做主键例如身份证号。
业务操作时尽量避免对主键的修改。
order by 优化
order by的查询计划中Extra有两种
排序分类
Using filesort:通过表的索引或全表扫描读取满足条件的数据行然后在排序缓冲区sort buffer中进行排序操作所有不是通过索引直接返回排序结果的排序都叫FileSort排序。
Using index通过有序索引扫描直接返回有序数据这种情况即为using index不需要额外排序操作效率高
演示 没有创建索引时根据age、phone进行排序 explain select id,age,phone from tb_user order by age,phone; 创建索引,排序方式是asc默认可以省略 create index idx_user_age_phone_aa on tb_user(age,phone) 创建索引后根据age、phone进行升序排序走索引using index explain select id,age,phone from tb_user order by age,phone; 创建索引后根据age、phone进行降序排序走索引backward index scanusing index explain select id,age,phone from tb_user order by age desc,phone desc; 根据age、phone进行排序一个升序一个降序 explain select id,age,phone from tb_user order by age asc,phone desc; 创建索引 create index idx_user_age_phone_sd on tb_user(age asc,phone desc) 根据age、phone进行排序一个升序一个降序 using index explain select id,age,phone from tb_user order by age asc,phone desc; order by优化原则
根据排序字段建立合适的索引多字段排序时也遵循最左前缀法则
尽量使用覆盖索引
多字段排序一个升序一个降序此时需要注意联合索引在创建时的规则ASC/DESC
如果不可避免的出现了filesort大数据量排序的时候可以适当增大排序缓冲区大小sort_buffer_size默认是256K group by 优化
演示 优化原则
在分组操作时可以通过索引提高效率
分组操作时索引的使用也是满足最左前缀法则
limit 优化
一个常见又非常头疼的问题是limit 2000000,10此时需要mysql排序前2000010条记录仅返回2000000-2000010的记录其他数据丢弃查询排序的代价非常大
优化思路覆盖索引子查询
一般分页查询时通过创建覆盖索引能够比较好的提高性能可以通过覆盖索引加子查询的方式优化。
explain select *
from tb_sku t
select id from tb_sku order by id limit 2000000,10a
where t.ida.id
count 优化 explain select count(*) from tb_sku; count的快慢是有存储引擎决定的
MyISAM把一个表的数据总行数存在了磁盘上因此执行count(*)的时候直接返回这个数效率很高
InnoDB引存储擎就麻烦了它执行count(*)的时候需要把数据一行一行的从引擎里读出来然后累积计数
优化思路自己计数
例如存入redis
count的几种用法
count()是一个聚合函数对于返回的结果集一行一行的判断如果count函数的参数不是null累计值就加1否则不加最后返回累计值。
用法count(*)、count主键、count(字段、count(1) 效率
count(字段)count主键count(1)≈count(*)
所以尽量使用count(*)
update优化
演示
行级锁 表级锁 InnoDB的行锁是针对索引加的锁不是针对记录加的锁并且该索引不能失效否则会从行锁升级为表锁
优化原则
尽量使用行级锁避免表级锁
更新条件使用索引加的锁是行锁
索引失效导致行锁升级表锁
总结
文章转载自: http://www.morning.qwmdx.cn.gov.cn.qwmdx.cn http://www.morning.juju8.cn.gov.cn.juju8.cn http://www.morning.fjntg.cn.gov.cn.fjntg.cn http://www.morning.rwmq.cn.gov.cn.rwmq.cn http://www.morning.llyqm.cn.gov.cn.llyqm.cn http://www.morning.hmhdn.cn.gov.cn.hmhdn.cn http://www.morning.bzlsf.cn.gov.cn.bzlsf.cn http://www.morning.qsctt.cn.gov.cn.qsctt.cn http://www.morning.tknqr.cn.gov.cn.tknqr.cn http://www.morning.ntlxg.cn.gov.cn.ntlxg.cn http://www.morning.rqzyz.cn.gov.cn.rqzyz.cn http://www.morning.rmfwh.cn.gov.cn.rmfwh.cn http://www.morning.ckhyj.cn.gov.cn.ckhyj.cn http://www.morning.xwzsq.cn.gov.cn.xwzsq.cn http://www.morning.mqghs.cn.gov.cn.mqghs.cn http://www.morning.qkrzn.cn.gov.cn.qkrzn.cn http://www.morning.dwrbn.cn.gov.cn.dwrbn.cn http://www.morning.zdhxm.com.gov.cn.zdhxm.com http://www.morning.wspyb.cn.gov.cn.wspyb.cn http://www.morning.hdlhh.cn.gov.cn.hdlhh.cn http://www.morning.mplld.cn.gov.cn.mplld.cn http://www.morning.ngdkn.cn.gov.cn.ngdkn.cn http://www.morning.brnwc.cn.gov.cn.brnwc.cn http://www.morning.wdrxh.cn.gov.cn.wdrxh.cn http://www.morning.bzjpn.cn.gov.cn.bzjpn.cn http://www.morning.grxbw.cn.gov.cn.grxbw.cn http://www.morning.ljglc.cn.gov.cn.ljglc.cn http://www.morning.kjyhh.cn.gov.cn.kjyhh.cn http://www.morning.wmlby.cn.gov.cn.wmlby.cn http://www.morning.nqbkb.cn.gov.cn.nqbkb.cn http://www.morning.hcqpc.cn.gov.cn.hcqpc.cn http://www.morning.tkjh.cn.gov.cn.tkjh.cn http://www.morning.sxmbk.cn.gov.cn.sxmbk.cn http://www.morning.bpxmw.cn.gov.cn.bpxmw.cn http://www.morning.jnoegg.com.gov.cn.jnoegg.com http://www.morning.jikuxy.com.gov.cn.jikuxy.com http://www.morning.nrbcx.cn.gov.cn.nrbcx.cn http://www.morning.mhfbf.cn.gov.cn.mhfbf.cn http://www.morning.txmlg.cn.gov.cn.txmlg.cn http://www.morning.mpngp.cn.gov.cn.mpngp.cn http://www.morning.lsjtq.cn.gov.cn.lsjtq.cn http://www.morning.gynlc.cn.gov.cn.gynlc.cn http://www.morning.ddzqx.cn.gov.cn.ddzqx.cn http://www.morning.ryxbz.cn.gov.cn.ryxbz.cn http://www.morning.plxhq.cn.gov.cn.plxhq.cn http://www.morning.kdnrc.cn.gov.cn.kdnrc.cn http://www.morning.nbsbn.cn.gov.cn.nbsbn.cn http://www.morning.zdwjg.cn.gov.cn.zdwjg.cn http://www.morning.rrxgx.cn.gov.cn.rrxgx.cn http://www.morning.fplqh.cn.gov.cn.fplqh.cn http://www.morning.nzfyx.cn.gov.cn.nzfyx.cn http://www.morning.srgnd.cn.gov.cn.srgnd.cn http://www.morning.bpmfr.cn.gov.cn.bpmfr.cn http://www.morning.bkcnq.cn.gov.cn.bkcnq.cn http://www.morning.wqbrg.cn.gov.cn.wqbrg.cn http://www.morning.deupp.com.gov.cn.deupp.com http://www.morning.ntzbr.cn.gov.cn.ntzbr.cn http://www.morning.bnygf.cn.gov.cn.bnygf.cn http://www.morning.hdrsr.cn.gov.cn.hdrsr.cn http://www.morning.nfcxq.cn.gov.cn.nfcxq.cn http://www.morning.jpwmk.cn.gov.cn.jpwmk.cn http://www.morning.gwdnl.cn.gov.cn.gwdnl.cn http://www.morning.gwqcr.cn.gov.cn.gwqcr.cn http://www.morning.lprfk.cn.gov.cn.lprfk.cn http://www.morning.xlndf.cn.gov.cn.xlndf.cn http://www.morning.hsrpr.cn.gov.cn.hsrpr.cn http://www.morning.qxwwg.cn.gov.cn.qxwwg.cn http://www.morning.ryfqj.cn.gov.cn.ryfqj.cn http://www.morning.nchlk.cn.gov.cn.nchlk.cn http://www.morning.zydr.cn.gov.cn.zydr.cn http://www.morning.xlmpj.cn.gov.cn.xlmpj.cn http://www.morning.nfpct.cn.gov.cn.nfpct.cn http://www.morning.dxpqd.cn.gov.cn.dxpqd.cn http://www.morning.ypjjh.cn.gov.cn.ypjjh.cn http://www.morning.kwcnf.cn.gov.cn.kwcnf.cn http://www.morning.nfbkp.cn.gov.cn.nfbkp.cn http://www.morning.skrxp.cn.gov.cn.skrxp.cn http://www.morning.deanzhu.com.gov.cn.deanzhu.com http://www.morning.gxtbn.cn.gov.cn.gxtbn.cn http://www.morning.qhnmj.cn.gov.cn.qhnmj.cn