搜索引擎优化高级编程(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协议》,转载须注明作者及本文链接
胡军