欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

@MySQL的存储引擎

发布时间:2023/12/10 数据库 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 @MySQL的存储引擎 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.存储引擎

查看MySQL提供了哪些存储引擎

mysql> show engines; +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | CSV | YES | CSV storage engine | NO | NO | NO | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | MyISAM | YES | MyISAM storage engine | NO | NO | NO | | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 9 rows in set (0.00 sec)

查看MySQL当前默认的存储引擎

mysql> show variables like '%storage_engine%'; +----------------------------+--------+ | Variable_name | Value | +----------------------------+--------+ | default_storage_engine | InnoDB | | default_tmp_storage_engine | InnoDB | | storage_engine(当前存储引擎) | InnoDB | +----------------------------+--------+ 3 rows in set (0.00 sec)
对比项 MyISAM InnoDB
外键        不支持                              支持
事务不支持                           支持
行表锁

表锁,即使操作一条记录也会锁住整张表,

不适合高并发的操作

行锁,操作时只锁定某一行,不对其他的行有影响,

适合高并发的操作

缓存只缓存索引,不缓存真实数据

不仅缓存索引还缓存真实数据,对内存要求较高,

而且内存大小对性能有决定性影响

表空间                        小                              大
关注点                      性能                               事务

2.sql性能下降的原因

1).查询语句写的烂。

2).索引失效,可能常用的搜索字段没有建索引。

3).关联查询太多的join。

4).MySQL服务器调优及各个参数的设置(缓冲,线程数等)。

3.sql的执行顺序

手写的sql

SELECT <select_list> FROM <left_table><join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY<group_by_list> HAVING<having_condition> ORDER BY<order_by_condition> LIMIT <limit_number>

MySQL是怎么读的呢?(从from开始读)

FROM <left_table> ON <join_condition> <join_type> JOIN <right_table> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> SELECT <select_list> ORDER BY <order_by_condition> LIMIT <limit_number>

WHERE和GROUP BY是一对哟~

总结

以上是生活随笔为你收集整理的@MySQL的存储引擎的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。