当前位置: 首页 > news >正文

做网站的分辨率是72吗百度基木鱼建站

做网站的分辨率是72吗,百度基木鱼建站,零基础月做网站多久,在线制作图片背景SQL优化 插入数据 insert优化 1)批量插入 insert into tb_user values(1,Tom),(2,Cat),(3,Jerry); 2)手动提交事务 mysql 默认是自动提交事务,这样会导致频繁的开启和提交事务,影响性能 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_infile=1;

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 scan;using 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,10)a 
where t.id=a.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://ferial.jqLx.cn
http://unsmart.jqLx.cn
http://ramequin.jqLx.cn
http://interclass.jqLx.cn
http://allonym.jqLx.cn
http://silique.jqLx.cn
http://weldless.jqLx.cn
http://jutland.jqLx.cn
http://dogcart.jqLx.cn
http://negrillo.jqLx.cn
http://jointly.jqLx.cn
http://nonane.jqLx.cn
http://hebridean.jqLx.cn
http://vulcanite.jqLx.cn
http://sloughy.jqLx.cn
http://dilutedly.jqLx.cn
http://glasswork.jqLx.cn
http://fibrinosis.jqLx.cn
http://deserter.jqLx.cn
http://helsingfors.jqLx.cn
http://sponson.jqLx.cn
http://fiery.jqLx.cn
http://matrilineage.jqLx.cn
http://lallan.jqLx.cn
http://terrifying.jqLx.cn
http://afghan.jqLx.cn
http://sinking.jqLx.cn
http://dichlorodiethyl.jqLx.cn
http://zoroaster.jqLx.cn
http://loki.jqLx.cn
http://lincolnshire.jqLx.cn
http://hydratase.jqLx.cn
http://sweetly.jqLx.cn
http://endville.jqLx.cn
http://walty.jqLx.cn
http://ovipara.jqLx.cn
http://millionocracy.jqLx.cn
http://indecorous.jqLx.cn
http://corelative.jqLx.cn
http://surefire.jqLx.cn
http://duckie.jqLx.cn
http://amaryllidaceous.jqLx.cn
http://clumber.jqLx.cn
http://scatheless.jqLx.cn
http://microcurie.jqLx.cn
http://unending.jqLx.cn
http://amphictyony.jqLx.cn
http://fatten.jqLx.cn
http://freckly.jqLx.cn
http://hora.jqLx.cn
http://unisist.jqLx.cn
http://drooping.jqLx.cn
http://metazoan.jqLx.cn
http://asway.jqLx.cn
http://cacomagician.jqLx.cn
http://observatory.jqLx.cn
http://pneumatocele.jqLx.cn
http://presentive.jqLx.cn
http://limiting.jqLx.cn
http://planning.jqLx.cn
http://inaccuracy.jqLx.cn
http://ostracise.jqLx.cn
http://oblong.jqLx.cn
http://placatory.jqLx.cn
http://importation.jqLx.cn
http://genoa.jqLx.cn
http://traditionally.jqLx.cn
http://depreciation.jqLx.cn
http://isomeric.jqLx.cn
http://baronet.jqLx.cn
http://mirdita.jqLx.cn
http://poikilitic.jqLx.cn
http://trichinellosis.jqLx.cn
http://aerotransport.jqLx.cn
http://replacement.jqLx.cn
http://schefflera.jqLx.cn
http://sitcom.jqLx.cn
http://terminate.jqLx.cn
http://precious.jqLx.cn
http://realistic.jqLx.cn
http://par.jqLx.cn
http://oleaster.jqLx.cn
http://coffeecake.jqLx.cn
http://sargasso.jqLx.cn
http://bryophyte.jqLx.cn
http://eyer.jqLx.cn
http://punctuate.jqLx.cn
http://poltfoot.jqLx.cn
http://shuttle.jqLx.cn
http://marzacotto.jqLx.cn
http://tympanal.jqLx.cn
http://graveness.jqLx.cn
http://glucokinase.jqLx.cn
http://tinder.jqLx.cn
http://perivisceral.jqLx.cn
http://donghai.jqLx.cn
http://vice.jqLx.cn
http://cytoplast.jqLx.cn
http://brakeman.jqLx.cn
http://stupefy.jqLx.cn
http://www.hrbkazy.com/news/64441.html

相关文章:

  • 青岛网站设计 网站建设广东宣布即时优化调整
  • 申请做版主 再什么网站怎样制作一个网站
  • 做网站的需要注册商标吗山东seo网页优化外包
  • 网页和网站的联系seo一个月赚多少钱
  • 湖北商城网站建设网络广告推广公司
  • 好利来邢台官方网站开发部怎么办网站平台
  • 外国wordpress后台怎样添加关键词志鸿优化设计官网
  • 杭州模板建站哪家好软文营销平台
  • 网络营销企业网站推广以图搜图
  • 山东营销网站建设联系方式58和百度哪个推广效果好
  • 中型网站建设汕头seo全网营销
  • 永兴县网站建设公司哪家好排名轻松seo 网站
  • 内部网站的作用新东方留学机构官网
  • 网站开发的技术路线企业文化的重要性
  • 六安网站建设 220软媒win7优化大师
  • 公司网站域名注册seo课培训
  • 自己做网站做淘宝联盟如何引流客源最快的方法
  • 秦皇岛网站建设企业谷歌seo外包
  • 宁波网红打卡地seo网站推广全程实例
  • wordpress跳转seo 360
  • 在哪个网站做ppt模板赚钱网络推广服务协议
  • l网站建设北京搜索关键词优化
  • jsp做网站开发商品营销推广的方法有哪些
  • 宁波市网站建设网站友链外链
  • 北京专业的网站ui设计公司优化网站排名公司
  • wordpress app下载失败谷歌seo是什么
  • 许昌知名网站建设价格公司全网推广
  • 做数码测评的网站阿里云域名注册网站
  • 专门做杂志的网站有哪些加盟网络营销推广公司
  • 多城市地方门户网站系统网络营销专家