1 开启事务之前需要rollback 连接句柄。(清理垃圾)
2 mysql_ping 失败,程序需要处理重连逻辑;
3 mysql_query()执行的SQL语句是一个以‘/0’结尾的字符串,而mysql_real_query()执行的字符串长度是参数指定的,因此,前者不能不能包含二进制数据(二进制数据中可能会包含‘/0’,导致被认为到达字符串末尾)
实际使用中,推荐使用mysql_real_query
4 mysql C API   中SQL不需要 ';' 结尾;
5 mysql 转义;(老问题了)
6 所有update 语句,建议后边调用函数判断受影响的行数,是否是自己预期值;
7 mysql_real_connect 需要设置连接超时时间,特别是处理重连逻辑的时候,以免程序堵死;
8 程序rollback时候, 需要习惯性的校验应用的错误码,避免错误码没有赋值,调用者以为调用成功,造成漏洞;
9 多线程环境下使用libmysqlclient_r 库,非libmysqlclient 库
10 mysql_real_connect/mysql_init 多线程环境下调用需要加锁;
11 使用mysql_real_escape_string, 需要注意目标缓冲区是 2*n+1 大小;
12 mysql_store_result 这个函数是分配的内存的。 使用完需要释放,避免内存泄露;

13 mysql的事务尽量小,使用完,立即commit或rollback.不要起一个过大的事务。
14 mysql的隔离级别注意使用 Read Commited。不然会产生锁间隙的问题。
15 避免尝试去锁一个不存在的记录,for update语句where条件请使用主键(锁定一个非主键,会默认同时锁定一个主键,这是造成很多死锁的原因)。避免过多的for update。
16 select语句必须使用索引,where条件避免使用 or 或者在条件中运用运算表达式,会造成索引失效。
17 联合索引可以替代单独的索引。如果已有联合索引,不需要重复建立单独的索引。索引过多会导致插入变慢。注意是联合索引的第一个可以省略。 避过(f1,f2),可以省略f1的单独索引,但是不能省略f2的单独索引。
18 where条件,结果集不要太大,如果超过30%,索引会时效,会导致mysql扫描全表。不确定时,请用explain做检测。
19 mysql单表记录保持在1000W以下,以获得较好的性能。
20 mysql数据库链接数不能过多,请保持在200以下。
21 修改mysql 锁等待时间,默认为50s,避免for update等待时间超长,造成系统阻塞 innodb_lock_wait_timeout(修改这个属性需要重启数据库)
22 如果启用事务,可以不必显示的设置set autocommit=0,即使当时autocommit模式为1(直接提交模式),可以通过begin/commit来隐式的调用。
   如果不使用事务,则必须显示的调用 set autocommit=1.因为不能确定,是否某长链接中,有人设置了set autocommit=0.

转载于:https://www.cnblogs.com/jaejaking/p/5379089.html

Mysql使用优化之处(转)相关推荐

  1. MySQL性能优化、故障排查及最佳实践秘籍,阿里云数据库专家玄惭的“武功”全记录...

    为什么80%的码农都做不了架构师?>>>    文章简介 玄惭,真名罗龙九,阿里云DBA专家,负责阿里云RDS线上稳定以及专家服务团队.他经历过阿里历年双11实战考验,积累了7年对阿 ...

  2. 记一次mysql性能优化过程

    2019独角兽企业重金招聘Python工程师标准>>> 转发自:记一次mysql性能优化过程 由于配置是运行过那么长时间,很稳定,基本上不考虑,所以本次主要是sql的优化,并且集中在 ...

  3. mysql 之 优化 (收集于网络)

    (以下内容均来自于网络,如果有版权限制,请联系我0.0) Mysql存储千亿级的数据,是一项非常大的挑战.Mysql单表可以存储10亿级的数据,只是这个时候性能非常差,项目中大量的实验证明,Mysql ...

  4. MySQL性能优化(二)

    1.MySQL基础操作一:MySQL基础操作1:MySQL表复制复制表结构 + 复制表数据create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样)ins ...

  5. mysql优化了解_了解MySQL如何优化

    MySQL优化 1.优化索引.SQL语句.分析慢查询: 2.设计表的时候严格按照数据库的设计范式来设计数据库: 3.我们还可以将我们的业务架构进行缓存,静态化和分布式: 4.不用全文索引,使用Xuns ...

  6. Mysql 性能优化——必胜之道

    mysql的性能优化是运维和DBA们常常面对的问题,也是各大公司招聘人才时看中的要点之一.性能优化听上去很难,似乎只有大神才能做,然而,mysql的性能优化绝不是运维独自一个能完成的,DBA.开发.架 ...

  7. 2023-02-04 用Orca替换MySQL的优化器

    无论在知乎还是各类数据库技术博客/公众号上,相信大家看到的绝大多数关于MySQL的技术分享,都和Innodb存储引擎相关,事务.锁.btree.MVCC等等,但关于MySQL的计算层的介绍则少之又少. ...

  8. 《MySQL性能优化和高可用架构实践》阅读总结

    文章目录 介绍 第1章 MySQL架构介绍 1.1 MySQL简介 1.2 MySQL主流的分支版本 1.3 MySQL存储引擎 1.4 MySQL逻辑架构 1.5 MySQL物理文件体系结构 第2章 ...

  9. 【学习】016 MySQL数据库优化

    MySQL如何优化 表的设计合理化(符合3NF) 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] SQL语句优化 分表技术(水平分割.垂直分割) 读写[写: ...

  10. MySQL性能优化:SQL慢查询优化,索引优化,表优化

    1. MySQL优化概述 MySQL 优化是一个综合性的技术,在优化上存在着一个调优金字塔的说法,如下: 很明显从图上可以看出,越往上走,难度越来越高,收益却是越来越小的.比如硬件和 OS 调优,需要 ...

最新文章

  1. 《C++覆辙录》——2.9:自反初始化
  2. 科学•转化医学 | 中国科大发现NK细胞促进胚胎发育的转录调控新机制
  3. 16、java包装类
  4. 对象的引用传递 ——面向对象3
  5. 彻底理解python3的编码和解码过程
  6. FFmpeg 异常:height not divisible by 2
  7. 图片底部留白怎么处理
  8. Android品牌手机,手机坑合集,手机厂商
  9. IDEA查看Event log
  10. 量子计算(七):量子系统
  11. 反编译工具dava的使用
  12. Linux的20个常用命令
  13. SOAP UI工具填写用户名密码校验通不过,需要报文头添加
  14. 吉林大学珠海学院c语言考试题,吉林大学珠海学院-c语言试卷_a卷.doc
  15. 基于MATLAB GUI的魔方三维动态还原仿真程序
  16. 新新人类,希望各位大侠多多照顾IT痴虫!
  17. java castor_Castor功能与应用参考四
  18. 几款好用的鼠标手势工具录屏
  19. 《JavaWeb从入门到改行》多重外键关系在java中的处理方案
  20. 六十星系之49武曲天府坐子午

热门文章

  1. deepfake ai智能换脸_AI换脸朱茵变杨幂,人工智能时代的“细思恐极”
  2. linux上scrapy项目的创建,Python网络爬虫4 ---- Linux下编写最简单的scrapy网络爬虫项目...
  3. 【Wannafly挑战赛14 E】无效位置(并查集思想+线性基合并)
  4. python中字符串转元组时的小技巧
  5. 处理数字音乐文件用计算机软件,工具软件商标注册属于第几类?
  6. 存不存行李寄存平台_行李寄存柜和行李寄存平台的区别
  7. 全国二级c语言公共基础知识,全国计算机二级C语言及公共基础知识复习资料
  8. 求数的绝对值一定是正数_有理数的绝对值难,那是因为你这些知识点和题型没掌握...
  9. 教育部计算机考研大纲,2021考研计算机大纲计算机组成原理部分考查内容
  10. 算法:翻转图片Rotate Image