关于mysql-sql编写、优化两三事

一、背景介绍

大量数据写入到不同库表中

二、推荐写法

(1)replace into  代替 insert into

相同点:都是向数据库中写入数据

不同点:

replace,会检查你当前数据库中是否存在,唯一索引或者相同主键索引,如果存在会先删除在添加

inset,只是简单添加,如果数据存在会报错

(2)将所有数据直接拼接成一个sql执行

假设你有100个用户需要添加数据库,那么我会这么写

insert into user_db (id,name) valuses  ((001,张三),(002,李四),(003,王武).....)

(以前我是每个用户插入一次,太消耗时间了,数据库每次连接都会消费一定时间,而且数据库过大的话,会导致锁表)

不用担心数据量太大问题,mysql当个sql最大可以数据16M内容

(3)查询、删除、编辑,优化

建议每次删除、查询、编辑操作时都加上limit关键字(结合自身需求哦)

mysql查询,是全量查询,假如我要在100个人中查询小明,那么他会先把100个人全查出来,然后在找到小明,如果加上limit的话,那么他查到小明后,就不会在查询了.同理,删除,编辑一样

例如:  delete from user_db where name=‘张三’ limit 1;

(4)添加索引要慎重

         4.1在生产环境下添加索引的话,需要关注当前库表是否有大量操作在执行,如果有很有可能导致锁表;

         4.2索引会加速查询,但是新增和删除数据时,效率会下降,如果你的表经常删除或添加数据,那么添加索引时要慎重

(5)杜绝使用select(*) 

会导致索引失效哦

未完待续......         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值