吐血整理!这200道阿里P6必备Java面试题,我简直太爱了(11)

  • 使用连接(JOIN)来代替子查询
  • 适用联合(UNION)来代替手动创建的临时表
  • 事务处理
  • 锁定表、优化事务处理
  • 适用外键 , 优化锁定表
  • 建立索引
  • 优化查询语句
  • 简单描述 MySQL 中 , 索引 , 主键 , 唯一索引 , 联合索引的区别 , 对数据库的性能有什么影响(从读写两方面)
    • 索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分) , 它们包含着对数据表里所有记录的引用指针 。
    • 普通索引(由关键字 KEY 或 INDEX 定义的索引)的唯一任务是加快对数据的访问速度 。
    • 普通索引允许被索引的数据列包含重复的值 。如果能确定某个数据列将只包含彼此各不相同的值 , 在为这个数据列创建索引的时候就应该用 关键字 UNIQUE 把它定义为一个唯一索引 。也就是说 , 唯一索引可以保证数据记录的唯一性 。
    • 主键 , 是一种特殊的唯一索引 , 在一张表中只能定义一个主键索引 , 主键用于唯一标识一条记录 , 使用关键字 PRIMARY KEY 来创建 。
    • 索引可以覆盖多个数据列 , 如像 INDEX(columnA, columnB)索引 , 这就是联合索引 。
    • 索引可以极大的提高数据的查询速度 , 但是会降低插入、删除、更新表的速度 , 因为在执行这些写操作时 , 还要操作索引文件 。
    SQL 注入漏洞产生的原因?如何防止?
    • SQL 注入产生的原因:程序开发过程中不注意规范书写 sql 语句和对特殊字符进行过滤 , 导致客户端可以通过全局变量 POST 和 GET 提交 一些 sql 语句正常执行 。
    • 防止 SQL 注入的方式开启配置文件中的 magic_quotes_gpc 和 magic_quotes_runtime 设置 执行 sql 语句时使用 addslashes 进行 sql 语句转换Sql 语句书写尽量不要省略双引号和单引号 。过滤掉 sql 语句中的一些关键词:update、insert、delete、select、 *。提高数据库表和字段的命名技巧 , 对一些重要的字段根据程序的特点命名 , 取不易被猜到的 。
    最后今天的面试题分享就到这里了 , 说是200道 , 其实阿博也没怎么数过 , 有耐心的朋友可以数一下 , 评论区给阿博看看!

    【吐血整理!这200道阿里P6必备Java面试题,我简直太爱了】


    推荐阅读