MYSQL是什么东西?

前两天,我帮邻居老王查看了他店的网站,但他打不开。
他很担心,说最近生意很好,订单也增加了好几倍,但电脑突然死机了。
我向后靠去,看了看。
屏幕上漂浮着一堆乱七八糟的字符。
他可能会盲目地点击鼠标,然后鼠标就会坏掉。
我问他平时如何管理订单,他说他用那台旧电脑保存了几个Excel电子表格、客户信息和订单记录,时不时需要手动整理。
我说这是不可能的。
如果顾客太多,那就太忙了。
如果数据乱了,那就很不方便了。

等等,我突然想到,他之前不是说要建立在线支付功能吗?如果使用MySQL存储数据,编写一个简单的PHP后端,每天可以自动生成订单统计报告。
我打开他的电脑,发现C盘根目录下确实有phpMyAdmin的快捷方式。
我想它是我之前安装网站时放在那里的。
文件名还是英文,他根本没有意识到。
软件比较老了,但是界面还算干净。
我突然想起我刚学编程的时候,在LAMP环境下搭建了我的第一个网站,并使用XAMPP安装在D盘。
当时我也将Apache设置为默认8 0端口来挽救这个问题。
结果我在转服务器的时候纠结了好久。

mysql实现递归查询的方法有哪些

MySQL 以多种方式执行递归查询...
1 .存储过程是将 SQL 语句分组在一起并根据它进行自我调整。
例如,2 008 年,公司开发了ERP系统,使用存储过程来处理组织结构,逐层向上。
优点是逻辑复杂的时候好用,但是说实话用多了性能有点不可靠,而且MySQL对恢复次数有限制。
例如,它停止在默认级别 1 000,您必须手动更改配置。

2 WITHRECURSIVE仅在MySQL8 .0中可用。
我现在用的版本是2 02 1 年的,非常好。
直接用 SQL 编写递归 CTE。
例如,当您检查树形菜单时,这可以通过一行代码来完成。
终止条件必须写清楚;否则它实际上会无限期地返回。
语法简单且运行速度快。

3 链接表查询的旧方法并不真正涉及递归。
这意味着该表链接到其自身。
比如2 01 0年的电子商务项目;我们检查了产品类型,并使用INNERJOIN将它们层层连接起来。
优点是MySQL版本较旧可以支持,但缺点是你必须自己管理层数,写太多会变得混乱。
写那个项目的时候,我看了一个1 0层嵌套的JOIN,当时不明白是怎么回事。

4 临时表...使用CREATE TEMPORARY TABLE创建一个中间表并逐位填充重复的结果。
灵活性确实很高。
它于2 01 5 年在报告系统中使用。
它对于计算员工级别特别有用。
但缺点是临时表的生命周期必须妥善管理,使用时必须删除。
否则会占用资源。
最后,那个项目使用了很多临时表,服务器像狗一样卡住了。

选择...对于MySQL 8 .0及以上版本,使用WITHRECURSIVE很简单。
对于旧版本,选择存储过程或连接表;但要小心层数。
临时表特别复杂,但您应该能够管理它们。
这取决于项目需求,例如数据量和支持哪些版本。

MySql到底是如何实现四大隔离级别的?

MySQL 隔离级别是通过锁定和 MVCC 实现的。

ReadUncommissed:直接读取最新数据。
ReadCommited:使用ReadView过滤提交的数据。
RepeatedRead:事务启动快照,使用MVCC避免脏读。
可序列化:表级锁定或行级锁定,强制序列化。

具体项目使用InnoDB引擎。
默认隔离级别是 ReadCommited。
事务隔离级别是在 DDL 时设置的。

GapLock 修复了重影读取问题。
Next-KeyLock还解决了范围读取问题。

员工表用于测试。
ReadCommit 时新输入的数据不可见。
可序列化时,插入操作将被阻止。

自己掂量一下。

mysql是怎样运行的

昨晚我在在线数据库中遇到了一个缓慢的查询。
经过两个小时的排查,终于发现某个存储过程中的嵌套循环太深,导致CPU占用率高达9 0%。
这突然让我觉得MySQL的查询优化器是一个黑匣子。
有时 A 计划似乎是最好的,但 B 计划很快就能获得全额回报。

例如,我一直认为InnoDB行锁锁定了整行数据。
后来查了数据,发现有些记录被锁定在数据页上。
你必须记住这些细节;否则写SQL的时候很容易出问题。
昨天我写了一份更新声明。
正因为如此,整张桌子都被锁住了,外科维修工关切地拍着大腿。
还有Binlog。
我之前用过混合模式;但后来发现有客户用的是主从副本。
我发现主库故障后丢失了5 00条数据。
经过检查,我发现Binlog格式不正确,并且没有记录类的更改。
去年冬天就发生过这样的事,DBA急得差点把服务器翻了。

等一下,还有一件事。
MySQL的表内存(Memory)实在不是什么好东西。
我之前有一个项目用它来缓存。
结果,当服务器在夏天变热时,内存会降至阈值以下,所有数据都会消失。
第二天早上,他告诉我手术好像被恶魔附身了。

所以当你使用MySQL时,你不能只看屏幕。
你需要了解基础知识,否则你不知道要为你钻哪些细节。
不过学这些东西真的比看电视剧还难……