数据库操作

使用JDBC操作数据库时,如何提升读取数据的性能?如何提升更新数据的性能?

参考答案:要提升读取数据的性能,可以通过结果集(ResultSet)对象的setFetchSize()方法指定每次抓取的记录数(典型的空间换时间策略);要提升更新数据的性能可以使用PreparedStatement语句构建批处理,将若干SQL语句置于一个批处理中执行。

写SQL:找出每个城市的最新一条记录

 id | city   | population | info      | createtime          |
+----+--------+------------+-----------+---------------------+
|  1 | 上海   |       1000 | infooo    | 2019-07-10 08:41:05 |
|  2 | 上海   |       1200 | 新数据    | 2019-07-22 08:41:55 |
|  3 | 北京   |        100 | 旧数据    | 2017-07-22 08:42:31 |
|  4 | 北京   |        130 | 新数据    | 2018-07-22 08:43:00 |
|  5 | 广州   |        123 | old data  | 2019-04-04 08:54:31 |
|  6 | 广州   |        145 | new       | 2019-07-22 08:54:55

参考答案:

SELECT city,MAX(createtime) FROM city GROUP BY city

mysql> select city,max(createtime) from city group by city;
+--------+---------------------+
| city   | max(createtime)     |
+--------+---------------------+
| 上海   | 2019-07-22 08:41:55 |
| 北京   | 2018-07-22 08:43:00 |
| 广州   | 2019-07-22 08:54:55 |
+--------+---------------------+