MySQL 必知必会系列(四)

2021/11/20 19:11:29

本文主要是介绍MySQL 必知必会系列(四),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

如何对查询命令进行优化?

  1. 不要在where 子句中的“=” 左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引;
  2. 可以用exists 代替in;
  3. 尽量使用数字型字段;
  4. 尽可能使用varchar /nvarchar 代替char/vchar;
  5. 避免使用select * from x ,用具体的字段名代替 * ,如查询名称就用select name from x,不要返回使用不到的字段;
  6. 尽量使用表变量来代替临时表;
  7. 尽量避免向客户端返回大数据量的结果,若数据量过大,应考虑需求是否合理;

数据库的优化?

优化方式可参考官方文档分为三类:

  1. 数据库级别优化
  2. 硬件级别优化
  3. 平衡可移植性和性能
  • 优化索引、SQL语句、使用explain ,分析慢查询;
  • 设计表的时候严格根据数据库的设计范式设计数据库;
  • 使用缓存,区分冷热数据,能节约IO
  • 优化硬件,采用SSD,使用磁盘队列技术(RAID0,RAID1,RAID5)等
  • 垂直分表,把一些不经常读的数据放在一张表里,节约磁盘IO
  • 主从分离读写,采用主从复制把数据库的读操作和写入操作分离开来
  • 采用更快的存储方式,例如NoSQL 存储经常访问的数据
  • 不采用全文索引

SQL 注入是如何产生的,如何防止?

  • 程序开发过程中不注意规范书写 sql 语句和对特殊字符进行过滤,导致客户端可以通过全局变量 POST 和 GET
    提交一些 sql 语句正常执行,产生sql注入。
  • 防止方法如下:
    • 使用 PreparedStatement
    • 使用字符串过滤
    • 使用正则表达式过滤传入的参数
    • 在页面中限制,我们通过js设置,不让用户输入非法字符
    • 对常用方法进行封装,避免直接暴漏 SQL 语句

参考链接:

MySQL官网参考手册



这篇关于MySQL 必知必会系列(四)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程