数据库技术(四)

PreparedStatement 有着如下的优势:提高了代码的可读性和可维护性、提高了执行重复<span lang="EN-US" mso-fareast-font-family:宋体;mso-font-kerning:10.5pt;mso-ansi-language:en-us;="" mso-fareast-language:zh-cn;mso-bidi-language:ar-sa'="" new="" roman",serif;="" times="">SQL语句时系统的性能、能有效防止<span lang="EN-US" mso-fareast-font-family:宋体;mso-font-kerning:10.5pt;mso-ansi-language:en-us;="" mso-fareast-language:zh-cn;mso-bidi-language:ar-sa'="" new="" roman",serif;="" times="">SQL注入。

Statement 接口是操作数据对象的类型;Connection 接口是数据库连接对象的类型;DatabaseMetaData 类是数据库的元数据类型;ResultSet 接口是数据结果集对象的类型。

使用 Statement 获取结果集的代码是 “Statement sta=con.createStatement(); ResultSet rst=sta.executeQuery(“selectfrom book”);” 使用PreparedStatement  获取结果集的代码是 “PreparedStatement pst=con.preparedStatement(“selectfrom book”);ResultSet rst=pst.executeQuery();”。

MySQL 数据库有 9 种存储引擎(但并不是所有的都支持),但是 这里因为实验环境安装的是 MariaDB, 只能查询出 8 种,少了 MyISAM。各参数含义如下:

  • Engine:数据库存储引擎的名称;
  • Support:当前是否支持该类引擎;
  • Comment:对该数据库引擎的解释说明;
  • Transactions:是否支持事务处理;
  • XA:是否支持分布式交易处理的 XA 规范;
  • Savepoints:是否支持保存点,以便事务进行回滚操作。

InnoDB 是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。且自 MySQL5.5 版本,MySQL 默认存储引擎为 InnoDB。

InnoDB 存储引擎的特点:
  1. InnoDB 给 MySQL 提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID,即原子性、一致性、隔离性、持久性)兼容;
  2. InnoDB 支持行级锁,行锁的粒度小,在高并发环境下产生冲突的概率低,能够更好的保障数据安全,实现事务的隔离性,因此更适合具有大量写操作的场景;
  3. InnoDB 存储引擎用自己的缓冲池维护主内存里的缓存数据和索引,大大提高查询效率; 此外,InnoDB 存储引擎还具有与 MySQL 服务器整合性好、支持外键完整性约束、灾难恢复性比较好等特点。
  4. 在 MySQL5.5 版本之前,MyISAM 存储引擎一直都是 MySQL 的默认存储引擎。

    MyISAM 的主要特点:
  5. 不支持事务;
  6. 不支持外键,如果强加外键,不会提示错误,但外键不起作用;
  7. 自己的缓冲池仅用于缓存索引,而数据的缓存则依赖操作系统缓存;
  8. 默认的锁粒度为表级锁,所以并发性差,但加锁快,锁冲突较少,所以不太容易发生死锁;
  9. 支持全文索引(MySQL5.6 后),但这项功能的使用率极低;
  10. 数据库所在主机如果宕机,MyISAM 的数据文件容易损坏,且难以恢复;
  11. 如果在首次建表并导入数据后不会再进行修改操作,那么这样的表适合采用 MyISAM 压缩表。可以使用 myisampack 对 MyISAM 表进行压缩,压缩后的表不能进行修改,压缩表可以极大地减少磁盘空间的占用,因此也可以减少磁盘 I/O 操作,从而提升查询性能。压缩表也支持索引,但索引是只读的。

相关推荐

  1. 汽车标定技术(十)--标定数据固化方法简介

    2024-03-27 09:52:01       178 阅读
  2. 数据库

    2024-03-27 09:52:01       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-27 09:52:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-27 09:52:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-27 09:52:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-27 09:52:01       20 阅读

热门阅读

  1. leetcode88-Merge Sorted Array

    2024-03-27 09:52:01       19 阅读
  2. ubuntu安装pyenv

    2024-03-27 09:52:01       19 阅读
  3. 对Flex布局的理解及其使用场景

    2024-03-27 09:52:01       21 阅读