16、数据库相关知识--索引、优化等

1、什么是数据库索引?

  • 数据库索引是数据库管理系统中一个排序的数据结构,用于协助快速查找数据库表中的数据;
  • 索引的实现通常采用B+ Tree;
  • B+ Tree的使用加快了数据的访问,因为存储引擎不会再去扫描整张表来获取需要的数据;相反它从根结点开始,根结点保存了子节点的指针,存储引擎会根据指针快速查找到需要的数据。

2、数据库如何优化查询效率

  • 存储引擎的选择:如果数据表需要事务处理,优先考虑使用InnoDB;如果不需要事务处理,使用默认出处引擎MyISAM即可;
  • 对查询进行优化,尽量避免全表扫描,如可以在where及order by涉及的字段上建立索引;
  • 避免在where子句中使用!=、or连接条件、null值判断,防止引擎放弃使用索引而进行全表扫描;
  • 对于join多张大数据量的表,要先分页在join.

3.、数据库的优化?

  • 设计表时严格根据数据库的设计范式来设计数据库;
  • 使用缓存:将经常需要访问的数据且不需要经常变化的数据放在缓存中;
  • 采用sql内部自带的表分区技术,把数据分成不同的文件

4、sql注入是如何产生的?如何防止?

程序开发过程中不注意规范书写sql语句和对特殊字符进行处理,导致客户端可以通过全局变量提交一些sql语句正常执行,产生sql注入。

如何避免:

  • 过滤掉一些常见的数据库操作关键字
  • sql语句在书写时尽量不要省略单引号和`
  • 对常用的方法加以封装,避免直接暴露sql语句
原文地址:https://www.cnblogs.com/yif930916/p/15060160.html