MySQL——常见问题

NULL和空值的区别

1、空值不占空间,NULL值占空间。当字段不为NULL时,也可以插入空值。

2、当使用 IS NOT NULL 或者 IS NULL 时,只能查出字段中没有不为NULL的或者为 NULL 的,不能查出空值。

3、判断NULL 用IS NULL 或者 is not null,SQL 语句函数中可以使用IFNULL()函数来进行处理,判断空字符用 =''或者<>''来进行处理。

4、在进行count()统计某列的记录数的时候,如果采用的NULL值,会别系统自动忽略掉,但是空值是会进行统计到其中的。

5、MySql中如果某一列中含有NULL,那么包含该列的索引就无效了。这一句不是很准确。

6、实际到底是使用NULL值还是空值(''),根据实际业务来进行区分。个人建议在实际开发中如果没有特殊的业务场景,可以直接使用空值。

truncate和delete区别

速度上:truncate快,整张表删除;delete一行一行删除

产生日志上:delete删除会产生二进制日志;truncate删除数据不产生二进制日志

insert和replace区别

insert: 插入一条新的数据, 假如主键相同的话会报错

replace: 要插入的数据中索引值不同于表中任意一条数据的索引值,就增加一条新的数据,等同于insert,否则,替换原来的数据,等同于先delete再insert

MySQL调优

1.升级硬件

2.系统(linux)调优,内存,文件系统,内核等参数的调优

3.MySQL的调优

3.1 参数的调优--》需要了解MySQL的机制

3.2 SQL语句的调优--》需要了解SQL语句

3.3 分区,分表,分库

4.架构的调优

4.1 中间件(缓存)

4.2 分布式(集群)

相关推荐
dfdfadffa2 分钟前
c++怎么利用std--filesystem--path处理包含多个扩展名的文件名【详解】
jvm·数据库·python
echola_mendes13 分钟前
InfluxDB(五)——分片、压缩与降采样三大核心技术
数据库·时序数据库
阿正呀14 分钟前
c++如何动态追加JSON数组到已有文件_nlohmann局部修改【详解】
jvm·数据库·python
m0_6908258216 分钟前
CSS如何使用-disabled控制禁用按钮的鼠标样式_通过状态伪类优化交互
jvm·数据库·python
2301_7950997417 分钟前
JavaScript事件委托机制在高性能列表开发中的应用
jvm·数据库·python
tongluowan00720 分钟前
MySql中Binlog,Redolog,Undolog的应用场景及作用的时机
mysql·日志文件
ㄟ留恋さ寂寞22 分钟前
CSS如何引入CSS暗黑模式配置_通过媒体特性实现主题自动化
jvm·数据库·python
2401_8246976624 分钟前
如何用 cookie 的 HttpOnly 与 Secure 属性防范 XSS 攻击
jvm·数据库·python
布吉岛的石头25 分钟前
ClickHouse性能优化:OLAP数据库实战,让查询飞起来
数据库·clickhouse·性能优化
神明93127 分钟前
React 中父组件向子组件传递函数的正确调用方式
jvm·数据库·python