首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL NULL特性

    NULL是一种“没有类型”的,通常表示“无”,“未知”,“缺失”,“超界”,“不在其中”等,我们在日常运用中很容易和NULL字符串混淆,这里大致整理了下NULL的一些特性,以便能够正确使用NULL...。...2)NULL字符串可以当作普通字符串进行处理,而NULL的判断只有is null和 is not null,见第5点 3,插入数据时若不指定,如果没其它默认,会用默认NULL 4,当插入大写...NULL字符时,就很难区别NULL是NULL还是NULL字符串了,这时需要用到NULL的判断,NULL的判断只有is NULL和is not NULL 通过肉眼很难区别,这里通过NULL的判断...7,和NULL的逻辑运算,is NULL运算只有null is null为真返回数字1,is not NULL运算只有 null is not null为假返回数字0 8,MySQL会把单独的

    2.6K10

    (第四回)回龙观大叔狂磕mysql

    种隔离级别: 1.未提交读 同事小王还没提交工作进度, 就被我看到了(嘿嘿~), 这种我们称为脏读问题. 2.已提交读 同事小王提交了工作进度, 又被我看到了, 这种我们称为不可重复读. 3.可重复读 (mysql...(新插入数据导致幻读) 4.可串行化 上面三个方案看起来一个比一个好, 但是都有点问题, 大叔会心一笑, 心想我在学 mysql小册 时候就知道这些问题啦, 完全可以靠最高隔离级别-串行化解决 于是组内提议...我们每个人基于当前自己的改动生成一个版本, 提交后与最新版本比对, 解决冲突. mysql的多版本并发控制 MVCC,全称Multi-Version Concurrency Control,即多版本并发控制...还记得我们上一回介绍的 InnoDB 行记录上隐藏了两个列为 事务trx_id 和 roll_pointer....image.png 餐厅问题3: 鱼香肉丝不用鱼 回龙观大叔总结 大叔终于找到了工作, 也没时间跟我聊天说话了, 当然这也是 mysql 最后一回了, 希望大叔能够在之后的职场和生活中顺利~

    36310

    (第三回)回龙观大叔狂磕mysql

    这次狂磕mysql系列进入了第三回, 回龙观大叔清明节约了我去体育公园打网球, 休息之余问了下他最近的情况, 说这两天对人生有了更多的思考, 听完后感觉很惊悚, 之后我再抽机会分享下他那悲观的心态....每次创建数据库都会创建对应的库目录, 此目录下存放着表的相关文件 物理存储结构: 表名.frm 描述表结构的文件 表名.MYD 具体的插入数据 表名.MYI 索引文件 搞清楚 InnoDB 目录结构 我们通过上一回知道了...这个参考意义很大, 对于索引建立错误或数据分布不稀疏情况, 可通过此字段观察. 6. filtered filtered 表示查询预测的分数, 表示返回结果的行数占需读取行数的百分比, filtered 的越大越好...INSUFFICIENT_PRIVILEGES:表示是否没有权限查看优化过程,默认是0,只有某些特殊情况下才会是1,我们暂时不关心这个字段的 InnoDB Buffer Pool 缓存池 我们知道内存读写速度要比磁盘快得多...在MySQL服务器启动的时候就向操作系统申请了一片连续的内存, 学名叫做Buffer Pool. 它主要是干什么呢?

    40820

    MySQL上线,检查数据库设计的“十条规”

    这些规范让了解和使用MySQL更加得心应手,并对后期的一些问题起到了很好的预防作用。 结合个人经验,下面具体讲解十个“规检查”: 1. 数据库大表信息查看 统计某库下各表大小,不要存在过大的表信息。...##MySQL5.7 SELECT db,type,count(*) FROM mysql.proc WHERE db not in ('mysql','information_schema','performance_schema...information_schema', 'performance_schema', 'sys'); 总结 以上规检查已经为后期排除了很多隐患...做好上线数据库设计方面的规检查,是必不可少的流程。...擅长MySQL、Redis、MongoDB数据库高可用设计和运维故障处理、备份恢复、升级迁移、性能优化。自学通过了MySQL OCP 5.6和MySQL OCP 5.7认证。

    1.5K70

    mysql修改自增起始

    1873739 | | 1873737 | | 1873735 | | 1873733 | | 1873731 | | 1873729 | 发现B最大id是187000w,所以考虑修改A的自增列起始,...通过如下命令 alter table A auto_increment=2000000; 修改后起始从200w开始。...接下来继续测试,DELETE,TRUNCATE 触发AUTO_INCREMENT的变化 **结论** : delete 操作不会变更 AUTO\_INCREMENT当前的顺序 truncate...操作会导致AUTO\_INCREMENT 从1开始, **主因**: 后来发现主要原因是所在实例重启造成的,auto_increment的自增值在mysql8.0之前一直是记录内存中的, 当实例重启的时候该会丢失...,那么mysql会取select max(id) + 1 的作为新插入数据的自增ID, 这样启动后就A表从58000开始而不是1873741开始,这样造成插入B表会重复

    3.5K30

    mysql导入hive的NULL处理方案

    目前提供两种方法解决数据库中的字段为NULl导入到HIVE中后变成空字符串的方法,使用以下方法可以保障在mysql中存储的是NULL,导入到HIVE表后也是NULL 第一种 解决方法: 直接修改hive...根据HIVE的设计原理,这是不可避免的情况,在HIVE中必须要指定一种方式来表示NULL,若空需要存储,则根据情况修改为其他的存储格式 第二种 PS:此方法依赖sqoop工具,若用户是在TBDS中使用则需要按照如下文档部署...SET SERDEPROPERTIES('serialization.null.format' = '\N'); ③执行sqoop导入命令 sqoop import \ --connect "jdbc:mysql...null的该类列的 --null-non-string 如果指定列为非字符串类型,使用指定字符串替换为null的该类列的 使用限制:导入的hive目标表需要提前建好,sqoop...的为其他代替

    4.7K70
    领券