搜索引擎优化高级编程(MyIsam和InooDB两种引擎的区别适合哪种引擎?适合干什么)

优采云 发布时间: 2022-04-20 14:43

  搜索引擎优化高级编程(MyIsam和InooDB两种引擎的区别适合哪种引擎?适合干什么)

  前面我们了解了 MyIsam 和 InooDB 引擎的锁。下面我们就来说说这两种引擎的区别,分别适用于什么?

  MyIsam 引擎适用于:

  (不支持事务,也不支持外键,尤其是访问速度快,对事务完整性没有要求,或者基于SELECT和INSERT的应用基本可以用这个引擎建表)

  其他信息说明:

  1.选择密集表。MyISAM 存储引擎在筛选大量数据时速度非常快,这是它最突出的优势。

  2.插入密集型表。MyISAM 的并发插入功能允许同时选择和插入数据。例如:MyISAM 存储引擎非常适合管理邮件或 Web 服务器日志数据。

  InooDB 引擎适用于什么:

  InnoDB 存储引擎通过提交、回滚和崩溃恢复功能提供事务安全。但与 MyISAM 存储引擎相比,InnoDB 写入效率较低,并且占用更多磁盘空间来保留数据和索引。

  其他信息说明:

  1.更新密集表。InnoDB 存储引擎特别适合处理多个并发更新请求。

  2.事务。InnoDB 存储引擎是支持事务的标准 MySQL 存储引擎。

  3.自动灾难恢复。与其他存储引擎不同,InnoDB 表可以自动从灾难中恢复。

  4.外键约束。MySQL 中唯一支持外键的存储引擎是 InnoDB。

  5.支持自动增加列AUTO_INCREMENT属性

  mysql性能下降的原因?

  从根本上说:缓慢的 SQL 执行要么是 CPU 计算复杂,要么是频繁的 IO 开销

  1.先进入linux打top看看是不是内存不够,CPU满了,磁盘满了,还是其他硬件原因!这些排除了再去sql的原因!

  2.假设上述原因真的排除了,那我们就找sql的原因

  一般SQL性能慢的原因:

  执行时间长或等待时间长

  执行时间或查询时间长的原因有:

  一种。查询语句写得不好(解释:各*敏*感*词*查询和各种join函数等,如果根本没有建立索引会导致索引失败或者运行很慢)

  湾。索引失效 (

  说明:已建立但未使用

  指数分为单值指数和复合指数:

  单值指数:

  假设表中有100万条数据,我们从中查询一条。我们可以为名称字段创建索引。创建索引,也就是标记查询,会很快;

  select * from users where name = '';

  在这种情况下,我们可以为 name 字段创建索引:

  //index 表示索引

  //idx_users_name 索引名通常定义如下: idx前缀表示索引users的哪个表名是这个表的哪个字段,当然我们也可以改名,不过这样更规范

  //on users(name) 表示表中的哪个字段被索引

  create index idx_users_name on users(name);//关键词: 创建索引

  复合指数:

  假设我们现在要搜索两个字段

  select * from users where name='' and password='';

  经常有组合字段需要查询,此时我们可以创建组合索引

  create index idx_users_namepassword on users(name,password);//关键词: 创建索引

  这样,就创建了一个复合索引。当同时检查名称和密码时,将使用我们创建的复合索引。

  )

  C。关联的查询加入过多(

  说明:设计缺陷或不可避免的要求

  太多的表连接和嵌套的子查询会导致查询缓慢!

  )

  d。服务器调优和各种参数的配置(缓冲线程数等)

  sql的执行顺序: sql的执行顺序:

  用户手写的sql序列:

  

  SQL自己的内部执行顺序:

  

  

  指数:

  什么是索引?

  MySQL官方定义索引:索引是帮助MySQL高效获取数据的数据结构

  要点:索引是一种数据结构

  索引的目的:提高查询效率,可以比作字典

  排序的快速查找数据结构是索引!

  索引两个函数:

  搜索和排序意味着会影响where后面的条件搜索是否可以使用上层索引进行快速搜索,也会影响排序的顺序。

  索引的优缺点:

  

  索引是一个删除、建立、建立和删除的过程。我们要根据用户的搜索习惯更新索引!它不是一个恒定的层。

  索引的分类和创建:

  一般建议创建复合索引。当然,这也取决于情况。如果一个字段被搜索的次数很多,而且频率很高,那么我们也可以为它创建一个单值索引;

  (创建复合索引也是可行且有效的,但我们在搜索时只使用其中一个索引!)

  一个表的索引数最多不超过 5 个。这是正常的做法!

  

  

  什么时候适合建索引,什么时候不适合建索引:

  

  注意:

  如果表中只有几万条记录,就不要创建索引,因为mysql数据库中的数据量还在咆哮!

  如果一个字段有很多重复值,不要建索引,因为它没用!

  mysql

  本作品采用《CC协议》,转载须注明作者及本文链接

  胡军

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线