文章 2022-01-10 来自:开发者社区

数据库面试题【十九、数据库优化】

为什么要优化系统的吞吐量瓶颈往往出现在数据库的访问速度上随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢数据是存放在磁盘上的,读写速度无法和内存相比优化原则:减少系统瓶颈,减少资源占用,增加系统的反应速度。数据库结构优化一个好的数据库设计方案对于数据库的性能往往会起到事半功倍的效果。需要考虑数据冗余、查询和更新的速度、字段的数据类型是否合理等多方面的内容。将字段很多的表分解成多....

文章 2022-01-10 来自:开发者社区

数据库面试题【十八、优化关联查询&优化子查询&优化LIMIT分页&优化UNION查询&优化WHERE子句】

优化关联查询:确定ON或者USING子句中是否有索引。确保GROUP BY和ORDER BY只有一个表中的列,这样MySQL才有可能使用索引。优化子查询:用关联查询替代优化GROUP BY和DISTINCT这两种查询据可以使用索引来优化,是最有效的优化方法关联查询中,使用标识列分组的效率更高如果不需要ORDER BY,进行GROUP BY时加ORDER BY NULL,MySQL不会再进行文件排....

文章 2022-01-10 来自:开发者社区

数据库面试题【十六、优化长难的查询语句】

一个复杂查询还是多个简单查询MySQL内部每秒能扫描内存中上百万行数据,相比之下,响应数据给客户端就要慢得多使用尽可能小的查询是好的,但是有时将一个大的查询分解为多个小的查询是很有必要的。切分查询将一个大的查询分为多个小的相同的查询一次性删除1000万的数据要比一次删除1万,暂停一会的方案更加损耗服务器开销。分解关联查询,让缓存的效率更高。执行单个查询可以减少锁的竞争。在应用层做关联更容易对数据....

文章 2022-01-10 来自:开发者社区

数据库面试题【十五、优化查询过程中的数据访问】

访问数据太多导致查询性能下降确定应用程序是否在检索大量超过需要的数据,可能是太多行或列确认MySQL服务器是否在分析大量不必要的数据行避免犯如下SQL语句错误查询不需要的数据。解决办法:使用limit解决多表关联返回全部列。解决办法:指定列名总是返回全部列。解决办法:避免使用SELECT *重复查询相同的数据。解决办法:可以缓存数据,下次直接读取缓存是否在扫描额外的记录。解决办法:使用expla....

文章 2022-01-10 来自:开发者社区

数据库面试题【十四、主键使用自增ID还是UUID】

推荐使用自增ID,不要使用UUID。 因为在InnoDB存储引擎中,主键索引是作为聚簇索引存在的,也就是说,主键索引的B+树叶子节点上存储了主键索引以及全部的数据(按照顺序),如果主键索引是自增ID,那么只需要不断向后排列即可,如果是UUID,由于到来的ID与原来的大小不确定,会造成非常多的数据插入,数据移动,然后导致产生很多的内存碎片,进而造成插入性能的下降。 总之,在数据量大一些的情况下,用....

文章 2022-01-10 来自:开发者社区

数据库面试题【十三、超大分页怎么处理】

超大的分页一般从两个方向上来解决.数据库层面,这也是我们主要集中关注的(虽然收效没那么大),类似于select * from table where age > 20 limit 1000000,10这种查询其实也是有可以优化的余地的. 这条语句需要load1000000数据然后基本上全部丢弃,只取10条当然比较慢. 当时我们可以修改为select * from table where i....

文章 2022-01-10 来自:开发者社区

数据库面试题【十三、大表数据查询,怎么优化】

优化shema、sql语句+索引;第二加缓存,memcached, redis;主从复制,读写分离;垂直拆分,根据你模块的耦合度,将一个大的系统分为多个小的系统,也就是分布式系统;水平切分,针对数据量大的表,这一步最麻烦,最能考验技术水平,要选择一个合理的sharding key, 为了有好的查询效率,表结构也要改动,做一定的冗余,应用也要改,sql中尽量带sharding key,将数据定位到....

文章 2022-01-10 来自:开发者社区

数据库面试题【十二、存储引擎选择】

如果没有特别的需求,使用默认的Innodb即可。MyISAM:以读写插入为主的应用程序,比如博客系统、新闻门户网站。Innodb:更新(删除)操作频率也高,或者要保证数据的完整性;并发量高,支持事务和外键。比如OA自动化办公系统。

文章 2022-01-10 来自:开发者社区

数据库面试题【十一、InnoDB引擎的4大特性】

1、插入缓冲(insert buffer)2、二次写(double write)3、自适应哈希索引(ahi)4、预读(read ahead)

文章 2022-01-10 来自:开发者社区

数据库面试题【十、【非关系型数据库】和【关系型数据库】的【区别】与【优势比较】】

非关系型数据库的优势:性能:NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。可扩展性:同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。关系型数据库的优势:复杂查询:可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。事务支持:使得对于安全性能很高的数据访问要求得以实现。其他:1.对于这两类数据库,对方的优....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。