文档介绍:mysql索引优化面试题
mysql索引优化面试题
mysql索引优化面试题
mysql 索引优化面试题
问题: mysql 索引优化面试题 回答:
从前静静的面试了两mysql索引优化面试题
mysql索引优化面试题
mysql索引优化面试题
mysql 索引优化面试题
问题: mysql 索引优化面试题 回答:
从前静静的面试了两个单位,都提到了 Mysql 的优化问题,因此今后要多多学****数据库的优化知识了。 建设数据库的优化大概主要就是索引的优化了吧, 由于我们不可以能更正数据结构的情况下, 提高数据库的盘问效率忧如也只能用索引了。 自然这也是建立在你 sql 语句写的比较科学的情况下,若是你的 sql 语句自己就写的比较垃圾,神仙也救不了你!
下边是在网上找到的一些资料,保留下来备用吧
,创办索引
对于盘问占主要的应用来说, 索引显得特别重要。 很多时候性能问题很简单的就是由于我们忘了增加索引而造成的, 也许说没有增加更为有效的索引以致。 若是不加索引的话, 那么查找任何哪怕可是一条特定的数据都会进行一次全表扫描, 若是一张表的数据量很大而吻合条件的结果又很少, 那么不加索引会引起致命的性能下降。 但是也不是什么情况都非得建索引不可以, 比方性别可能就只有两个值, 建索引不但没什么优势,还会影响到更新速度,这被称为过分索引。
,复合索引
mysql索引优化面试题
mysql索引优化面试题
mysql索引优化面试题
比方有一条语句是这样的: select * from users where area= ’
beijing ’ and age=22;
1
mysql索引优化面试题
mysql索引优化面试题
mysql索引优化面试题
若是我们是在 area 和 age 上分别创办单个索引的话,由于
mysql 盘问每次只能使用一个索引, 因此诚然这样已经相对不做索引
时全表扫描提高了很多效率,但是若是在 area 、age 两列上创办复
合索引的话将带来更高的效率。若是我们创办了 (area, age, salary)
的复合索引, 那么其实相当于创办了 (area,age,salary) 、(area,age) 、
(area) 三个索引,这被称为最正确左前缀特点。因此我们在创办复合索
引时应该将最常用作限制条件的列放在最左边,依次递减。
3 ,索引不会包含有 NULL 值的列
只要列中包含有 NULL 值都将不会被包含在索引中, 复合索引中
只要有一列含有 NULL 值,那么这一列对于此复合索引就是无效的。
因此我们在数据库设计时不要让字段的默认值为 NULL 。
,使用短索引
对串列进行索引, 若是可能应该指定一个前缀长度。比方,若是
有一个 CHAR(255) 的 列,若是在前 10 个或 20 个字符内,多数值
是独一的,那