本文主要是介绍MySQL 必知必会系列(四),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
如何对查询命令进行优化?
- 不要在where 子句中的“=” 左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引;
- 可以用exists 代替in;
- 尽量使用数字型字段;
- 尽可能使用varchar /nvarchar 代替char/vchar;
- 避免使用select * from x ,用具体的字段名代替 * ,如查询名称就用select name from x,不要返回使用不到的字段;
- 尽量使用表变量来代替临时表;
- 尽量避免向客户端返回大数据量的结果,若数据量过大,应考虑需求是否合理;
数据库的优化?
优化方式可参考官方文档分为三类:
- 数据库级别优化
- 硬件级别优化
- 平衡可移植性和性能
- 优化索引、SQL语句、使用explain ,分析慢查询;
- 设计表的时候严格根据数据库的设计范式设计数据库;
- 使用缓存,区分冷热数据,能节约IO
- 优化硬件,采用SSD,使用磁盘队列技术(RAID0,RAID1,RAID5)等
- 垂直分表,把一些不经常读的数据放在一张表里,节约磁盘IO
- 主从分离读写,采用主从复制把数据库的读操作和写入操作分离开来
- 采用更快的存储方式,例如NoSQL 存储经常访问的数据
- 不采用全文索引
SQL 注入是如何产生的,如何防止?
- 程序开发过程中不注意规范书写 sql 语句和对特殊字符进行过滤,导致客户端可以通过全局变量 POST 和 GET
提交一些 sql 语句正常执行,产生sql注入。 - 防止方法如下:
- 使用 PreparedStatement
- 使用字符串过滤
- 使用正则表达式过滤传入的参数
- 在页面中限制,我们通过js设置,不让用户输入非法字符
- 对常用方法进行封装,避免直接暴漏 SQL 语句
参考链接:
MySQL官网参考手册
这篇关于MySQL 必知必会系列(四)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!