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语句