mysql的问题以及解决办法


SET max_length_for_sort_data = 16;全字段排序,字段大小,导致RowId 排序

问题6:select * from t where city in (“杭州”," 苏州 ") order by name limit 100; 这个 SQL 语句是否需要排序?有什么方案可以避免排序?答案是:拆成两条SQl语句

问题7:关于查询mysql返回数据,应该使用store_result将结果保存在本地内存,从而来提高吞吐量,提升性能

一.:有关bufferpool的优化

   (1)线上生产环境得buffer_pool_size默认是128M,实在是太小了

(2)增加innodb_bufferpool_instance数量提高并发能力

   (2)innodb_ahead_read_threashold参数,尽量调大,连续加载多个数据页,会将下一个数据页也缓存进去,但是很少使用

(3)innodb_old_block_pct=37%,这个是默认值,冷热备份得比例。。innodb_old_blocks_time,就是过多长时间再次访问,就算他是再度访问

(4)设置多个bufferpool来优化并发的性能

  (5)关于changeBuffer

将普通索引改为了唯一索引,导致命中率下降,原因就是没用到changeBuffer,changeBuffer适用于更新多而读比较少的场景。。读会触发changeBuffer马上进行merge操作,而这个操作是很浪费时间的

(6)刷盘,性能优化,flush刷盘策略,innodb_io_capacity参数的能力,设置为IOPS,直接用FIO这个工具来压测。提高写的能力

(7)innodb_flush_log_at _trx_commit的设置值为0,1....fsync_binlog的值为0,1,N。

二.有关索引的优化

1.查看慢查询日志——》explain分析执行计划,有没用到索引——》开启trace观察分析过程。set session opti mizer_trace="enable-on"..select * from information_schemal.Optimizer_trace;查看优化器的执行路径(1.执行准备 。2.SQL优化 3.预估执行全表扫描和索引的执行成本)

2.优化原则:

     单个索引,(1)少用唯一索引。(2)哪些情况放弃使用索引,=,null, in, 函数,%开头的

 联合索引:(1)使用覆盖索引 (2)左前缀匹配

其他操作:

orderBy, groupBy尽量让索引字段去排序,如果不能应该尽量加大sorted_buffer的大小。在客户端排序

join,有的时候需要拆分。让小表驱动大表,被驱动表用上索引。如果实在无法用到索引,应该加大join_buffer的大小,让其在内存中完成。

一个很长的sql,在sql语句里面做了过滤条件,数据量一大,查询很慢,且无法用到索引..

解决办法:分拆成三次查询,每次查询用到了sql,再将三次查询结果去重复,速度明显提升问题2:

问题9:如何防止删库跑路

事前:

(1)合理分配好操作权限

(2)对增删改加一个sql_safe_update=on

  (3)制定操作规范,一个表不要了,该表名,而不是删除,另外可以做假删除

(4)利用备库演练,做定期备份。并且调大主库和备库延迟时间

事情发生后

(1)delete(DDl)语句,用flashBack闪回

(2)truncate或者drop命令。调小全量备份时间,两天一备份,其余用binlog恢复,找到那个点,mysqlBinlog event in 文件名。用mysqlBinlog 文件名 ----startPositin  50 --stopPosition 100 | mysql  -h -P -u -p..

        为增大导入速度,可以从备库连接一个日志,从那里读取日志。

 

问题10:临时表

tmp_table_size 这个配置限制了内存临时表的大小,默认值是 16M.

不要让临时表排序的都应该加一句order bu null,禁止表排序

问题10:磁盘随机读的两个有关参数:

IOPS和响应延迟

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值