顺分面试题:
你都用过哪些数据库,数据库优化操作
(推荐教程:java教学视频)
回答:
1、根据服务层面
配置mysql性能优化参数;
2、从系统层面增强mysql的性能:优化数据表结构
① 将字段较多的表分解成多个表
对于字段较多的表,如果有些字段的使用频率很低,可以将这些字段分离出来形成新表。因为当一个表的数据量很大时,会由于存在使用频率低的字段而使查询速度变慢。
(更多相关面试题推荐:java面试题及答案)
② 增加中间表
对于经常需要联合查询的表,可以建立中间表以提高查询效率。通过建立中间表,把需要经常联合查询的数据插入中间表,然后将原来的联合查询改为对中间表的查询,以此来提高查询效率。
3、从数据库层面增强性能
优化SQL语句,合理使用字段索引。
4、从代码层面增强性能:使用缓存和NoSQL数据库方式存储,如MongoDB/Memcached/Redis来缓解高并发下数据库查询的压力。
5、减少数据库操作次数,尽量使用数据库访问驱动的批处理方法。
6、不常使用的数据迁移备份,避免每次都在海量数据中去检索。
7、提升数据库服务器硬件配置,或者搭建数据库集群。
8、编程手段防止SQL注入:使用JDBC PreparedStatement按位插入或查询;正则表达式过滤(非法字符串过滤);