MYSQL 面试题二:SELECT * 和 SELECT 全部字段的优缺点

嗯,说到 SELECT,我对此非常了解。
我记得当时我还在一家小公司做数据库维护。
当时,该公司的服务器和带宽令人难以置信。
每次使用SELECT进行搜索时,网络流媒体压力很大,有时甚至整个网络都被阻塞了。

曾经,我们公司的一个小项目需要分析用户行为数据。
当时用户行为日志表有几十个字段,我用SELECT来查看。
结果那天服务器差点当机,而且数据传了好久,客户端都惊呆了。
后来经理看到这个情况,赶紧让我改成SELECT特定字段。

修改后效果可见。
网络传输压力减轻,服务器响应更快。
另外,我后来发现这样可以更好地利用索引,提高查询效率。
我记得有一次,某个字段上有一个索引,我使用 SELECT 来检查它。
结果数据库还是进行了全表扫描。
后来改成SELECT特定字段,查询速度提升了一倍多。
然而,这并不是绝对的。
有时候,表结构没有太大变化,或者字段比较少,用SELECT也没关系。
例如,在我之前做的一个小项目中,表只有几个字段。
使用SELECT进行查找,方便快捷,没有任何问题。

但总的来说,使用特定的 SELECT 字段有更多好处。
代码的可读性非常好并且易​​于维护。
有一次,我接手了一个遗留项目,发现全都是SELECT。
代码太牛逼了,光是看着就让人头疼。
后来我花了很大力气,把每个字段都改为SELECT特定字段,结果维护起来方便多了。
当然,也有缺点。
例如,当表的结构频繁变化时,查询语句就要频繁改变,这是相当麻烦的。
不过,这个问题也要看具体情况。
如果表的结构变化不大,影响不会很大。

总之,这些SELECT和SELECT特定字段就像吃饭一样。
有时简单快捷,有时却要细细享受。
应根据实际情况确定,不要一概而论。
哈哈,我的话可能有点绕,但都是我个人的经历。
我希望它对你有用。

面试必问!10 道经典 MySQL 面试题

1 . DROP、DELETE 和 TRUNCATE 的区别
相同点:删除数据;维护表结构(删除和不带where的删除); DROP 删除结构和依赖关系。

区别:TRUNCATE重置ID; DELETE不释放空间; DROP 释放所有空格; DELETE可以反转; TRUNCATE/DROP 不能。

速度:删除>截断>删除。

故事:使用DELETE删除表的一部分;使用DROP删除整个表,使用TRUCATE清除数据。

2 使用 DECIMAL 或 NUMERIC 记录货币。

不损失准确性,适合定量。

3 MyISAM 和 InnoDB 的区别
事务:InnoDB支持;不支持 MyISAM。

锁:InnoDB类级别; MyISAM 表级别。

连续性:InnoDB MVCC; MyISAM 轻松锁定表。

外键:InnoDB支持;不支持 MyISAM。

索引:MyISAM全文;支持InnoDB5 .6 +。

复制:MyISAM实时复制,需要从InnoDB导出/导入。

结构:InnoDB索引组织; MyISAM 转储表。

4 事务的四个特征(ACID)
原子性:完全成功或完全回滚。

一致:不违反完整性约束。

隔离性:并发事务互不干扰。

持久化:提交后永久保存。

5 MySQL的特点
轻量级:易于安装且资源较少。

跨平台:支持多种操作系统。

高性能:查询优化;支持索引和缓存。

开源免费:社区版免费,企业版付费。

丰富的生态系统:许多具有 PHP/Python 集成的第三方工具。

6 适应角色和观点的能力
行动:简化 SQL;限制访问;逻辑上要独立。

修改:简单视图可以修改,但复杂视图通常不能修改。

7 存储过程和触发器之间的区别
触发条件:存储过程已被显式调用;触发器是间接触发的。

目的:存储过程封装业务逻辑并触发完整性。

执行方式:存储过程返回结果集,触发器执行SQL。
8 .指标的作用;优点和缺点
行动:加速恢复并减少全表扫描。

优点:提高查询速度,加快表连接速度。

缺点:占用空间;降低书写性能它可能会变得支离破碎。

9 UNION 和 UNIONALL 的区别
Union:删除重复项;需要排序,效率较低。

UNIONALL:保留重复项,性能高。

故事:重用UNION;无需重复使用UNIONALL。

1 0 SQL 语言的组成部分和函数关键字
DDL:创建表、更改表制表创建索引。

DML:选择、插入、更新、删除。

DCL:允许、撤回。

DQL:SELECT(特指查询)。

关于mysql面试题

结论: 1 、进入PHP页面时,userid字段是必填项,但处理后被清除。
2 .用LOCKTABLES锁定表,INSERT后清除TRUNCATETABLE,然后用UNLOCKTABLES解锁。
3 . mysql_insert_id()获取最新的插入ID,select last_insert_id()获取最后的插入ID。
4 . 注意:在任何数据库操作之前始终启用事务处理,以避免数据不一致。

【面试题精讲】MySQL-show-process命令

这称为 MySQL View 进程,它显示 MySQL 服务器上的所有连接。

为什么使用这个命令?它告诉您服务器正在做什么,并帮助您识别缓慢或有问题的会话。

原则?这很容易做到;只需从 MySQL 中名为 information_schema.processlist 的表中检索数据即可。

如何使用?输入“显示进程列表;”显示MySQL中的所有会话信息。

有什么好处?直观的实时对话可帮助您快速识别问题。

有什么缺点?过度使用会影响性能并限制信息。
在某些情况下,可能需要将其与其他工具结合使用。

注意事项?不应一直使用,但应获得许可并与其他工具结合使用。

综上所述,这个命令非常有用,但是你需要知道如何使用它,不要滥用它。