核心军规 尽量不在数据库做运算 控制单表数据量 纯INT不超过10M条,含Char不超过5M条 保持表身段苗条 平衡范式和冗余 拒绝大SQL,复杂事务,大批量任务 字段类军规 用好数值字段,尽量简化字段位数...把字符转化为数字 优先使用Enum或Set 避免使用Null字段 少用并拆封Text/Blob 不在数据库中存图片 索引类军规 谨慎合理添加索引 字符字段必须建立前缀索引?...UTF8MB4 for by 可能还有人不知道,MySQL 数据库的字符集,要用 utf8mb4,而不是utf8。...因为MySQL的utf8不是真正的UTF-8,只支持最多三个字节的字符。真正的UTF-8可能会出现四个字节的字符。...MySQL 从来没有修复这个 Bug,而是使用另外的解决方法:真正的UTF-8字符集用 utf8mb4的名字提供。
八爪鱼采集了5月至今的微博热搜榜数据及86,495条豆瓣小组关于吴亦凡事件的讨论,试图还原此次事件的发展脉络及舆论风向。...数据采集 采集平台:豆瓣、微博 数据来源: 5月1日-7月20日微博热搜数据 7月18日10点-7月20日17点豆瓣小组关于吴亦凡事件的讨论及回帖数据86,495条 采集时间:2021年7月20日17点...数据采集工具:八爪鱼 可视化工具:镝数聚、BDP 01 微博热搜类型统计 根据八爪鱼大数据统计,5月1日至7月21日期间,与吴亦凡相关的热搜共有90条,其中与此次事件相关的微博热搜共72条,仅仅是7月...19日一天,与吴亦凡事件相关的热搜词条就有36条,一个人承包了一天的微博热搜,可以说是当之无愧的“顶流”。...因时间不足,本次文章仅采集了微博平台热搜及豆瓣网友相关讨论,数据来源有限,有兴趣的朋友也可以尝试采集其他平台数据,或许会有更多发现。
预告:后面推送大数据伪分布式从零搭建到1.8亿海量数据从Mysql至HBase数据转存技术分析与应用! 1.搭建MySQL数据库 电脑环境为Ubuntu16.04系统。...1.2 配置目录 安装成功后,相关配置文件如下: 数据库目录:/var/lib/mysql/ 配置文件:/usr/share/mysql(命令及配置文件) ,/etc/mysql(如:my.cnf) 相关命令...#启动 sudo service mysql start #停止 sudo service mysql stop #服务状态 sudo service mysql status 2.导入海量GPS数据...2.2 程序插入法 这里使用Python操纵MySQL数据库,进行SQL的插入。...Insert的处理机制是:每插入一条则更新一次数据库,更新一次索引.
-- 查看重复数据 SELECT `item_id`,COUNT(1) FROM app_wine GROUP BY `item_id` HAVING COUNT(1) > 1 -- 删除重复数据保留一条最新数据...DELETE FROM app_wine WHERE id NOT IN ( SELECT t.min_id FROM ( -- 过滤出重复多余的数据,比如,如果所有记录中存在...1条记录是user_name=zhangsan的,那么就取出它; -- 如果所有记录中存在多条记录是user_name=lisi的,那么只取其中1条,其他的不查询出来 SELECT
来自:www.slideshare.net/mysqlops/mysql-9838563 来自一线的实战经验,主要针对DBA和后端开发人员,总是在灾难发生后,才想起容灾的重要性;总是在吃过亏后,才记得曾经有人提醒过...核心军规 尽量不在数据库做运算 控制单表数据量 纯INT不超过10M条,含Char不超过5M条 保持表身段苗条 平衡范式和冗余 拒绝大SQL,复杂事务,大批量任务 字段类军规 用好数值字段,尽量简化字段位数...把字符转化为数字 优先使用Enum或Set 避免使用Null字段 少用并拆封Text/Blob 不在数据库中存图片 索引类军规 谨慎合理添加索引 字符字段必须建立前缀索引?...Load Data导入数据,比Insert快20倍 打散大批量更新,尽量凌晨操作 约定类军规 隔离线上线下 禁止未经DBA认证的子查询 永远不在程序段显式加锁 表字符集统一使用UTF8MB4 往期干货推荐...Spring Boot 集成 Mybatis 实现双数据源 5. Java 中的伪共享详解及解决方案
MySQL数据库开发的 36 条军规 标签:数据库 核心军规(5个) 尽量不在数据库做运算。 控制单表数量:行不超过500W条,超出分表;列不超过50个,超过拆表。...NULL(NULL字段很难查询优化、NULL字段的索引需要额外空间、NULL字段的复合索引无效) 尽量少用text/blob类型(尽量使用varchar代替text字段),需要的时候请拆表 不在数据库存图片...pinyin`(8)), 不在列上做运算 Innodb主键推荐使用自增列(主键建立聚簇索引,主键不应该被修改,字符串不应该做主键) 不用外键(由程序保证约束) SQL类军规(16个) SQL语句尽可能简单(一条SQL...只能在一个cpu运算,大语句拆小语句,减少锁时间,一条大SQL可以堵死整个库) 简单的事务(事务时间尽可能短,坏的代码案例:上传图片事务) 避免使用trigger/func(触发器、函数不用,由客户端程序取而代之...:group by name order by null 提高查询效率 请使用同类型比较(避免转换导致索引丢失) 使用 LOAD DATA 导入命令比 insert 速度快20倍左右(适合导入大量测试数据
(3)数据表、数据字段必须加入中文注释 解读:N年后谁tm知道这个r1,r2,r3字段是干嘛的。...高并发情况下容易造成数据库性能,大数据高并发业务场景数据库使用以性能优先。...四、字段设计规范 (14)必须把字段定义为NOT NULL并且提供默认值 解读: a)null的列使索引/索引统计/值比较都更加复杂,对MySQL来说更难优化。...b)null 这种类型MySQL内部需要进行特殊处理,增加数据库处理记录的复杂性;同等条件下,表中有较多空字段的时候,数据库的处理性能会降低很多。...(29)禁止使用OR条件,必须改为IN查询 解读:旧版本Mysql的OR查询是不能命中索引的,即使能命中索引,为何要让数据库耗费更多的CPU帮助实施查询优化呢?
今天遇到一个需求,需要找出最新的一条数据。...,如果在10w条数据中用MAX函数应该很会慢,而且数据越来越多,有可能100w条。...加索引的如果数据量太大也会慢吧。我想到解决办法是加上一个条件startTime和endTime 就是当日期的开始 也就是00:00:00~23:59:59 这个时间范围的数据就是最新的数据了。...这样在MAX也不会很慢,如果考虑到可能当天内没有数据,开始时间可以向前推几天。...AND insTime BETWEEN #{startTime} AND #{endTime} 另外也可以不使用MAX,可以使用 ORDER BY insTime Limit 1 这样也可以找出最新的一条
SQL面试专栏 《SQL145题第2版》 花时间整理了50条常用的MySQL脚本,查漏补缺,希望对大家有所帮助。...-- 1、插入数据 INSERT INTO example_table (name, age) VALUES ('Alice', 30); -- 2、查询表中所有数据 SELECT * FROM example_table...WHERE age > 25; -- 5、更新数据 UPDATE example_table SET age = 35 WHERE name = 'Alice'; -- 6、删除数据 DELETE...example_table; -- 27、将查询结果导出为CSV文件 SELECT order_id, product_name, quantity INTO OUTFILE '/var/lib/mysql-files...SHOW TABLES; -- 45、使用SHOW VARIABLES查看 MySQL 的配置变量: SHOW VARIABLES LIKE 'version%'; -- 46、创建临时表并插入数据
1、EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。 下面来个简单的示例,标注(1、2、3、4、5)我们要重点关注的数据: ? type列,连接类型。...4、当只需要一条数据的时候,使用limit 1 这是为了使EXPLAIN中type列达到const类型 5、如果排序字段没有用到索引,就尽量少排序 6、如果限制条件中其他字段没有索引,尽量少用or or...当然,union all的前提条件是两个结果集没有重复数据。...LEFT JOIN A表为驱动表,INNER JOIN MySQL会自动找出那个数据少的表作用驱动表,RIGHT JOIN B表为驱动表。...以上19条MySQL优化方法希望对大家有所帮助! 原文参考公众号【Java团长】
问题:MySQL某个表自增id溢出导致某业务block 背景: tokudb引擎的一个大表tb1,存放业务上的机审日志,每天有大量的写入, 并且由于历史原因,这张表是int signed 类型的...处理过程: 增加DBLE中间件代理,然后做range分区,将新数据写到新加的的一个分片上。 同时业务上修改连接将这个表tb1的连接方式改走DBLE。... id bigint unsigned not null auto_increment ; -- 修改新表为bigint unsigned类型,能存 18446744073709551615 行数据...,业务也能暂时恢复,剩下的工作就是把 tb_archive 表的数据迁移到 tb1 里面的(迁移数据可以使用pt-archiver工具在后台慢慢跑就行)。...算了下,整个操作中切表最多5分钟左右即可恢复业务的写入操作,剩余的迁移数据的影响相对会小一些。
复型(复数类型):我们把形如 z = a + b\textbf{i} 的数称为 复数。 在 matlab 中的复数就称为 复型(没有历史考证,看的网上有人这么叫,可能不专业)。...一般情况下没有使用复型的必要,所以没有特殊需求的小伙伴可以跳过本节哦! 一、复数 1....复数概述 复型(复数类型):我们把形如 z = a + b\textbf{i} 的数称为 复数,例如 10 + 3i、-1 + 10i、6 - 8i 等等。...tanθ=\frac{b}{a} 由直角坐标与极坐标的关系可知,非零有穷复数 z 可以用其模 r=|z| 与辐角 θ 来表示,则有: z=r(cosθ +sinθ\textbf{i}) 二、复型创建...1x1 16 double complex c 1x1 16 double complex 三、复型相关函数
与技术&业务沟通后,知晓该表数据可以自动重建。...root用户打算直接删除该表,但是失败 Table is locked by the server 发现 innodb_force_recovery,但是不敢乱用 发现rollback速度为每秒约1W条,...2.6亿数据。...简要描述情况,CTO初步检测后,给出A/B方案: A:先等待正常回滚 B:如果无法回滚完,考虑停止Mysql. 使用备份数据启用备库 最终结果 由于时间还来得及,采用了A方案,等待DB自然回滚。...在此期间,其他同事找到了相应的程序BUG,一个存储过程中的死循环自昨晚23点开始疯狂往表中插入数据。 由于这张表目前达到73G,因此删除再重建了此表,利用程序进行数据恢复。
、无事务) 3 总结 4 补充 ---- 利用JAVA向Mysql插入一亿数量级数据—效率测评 这几天研究mysql优化中查询效率时,发现测试的数据太少(10万级别),利用 EXPLAIN 比较不同的...1、先上Mysql数据库,随机生成的人员数据图。分别是ID、姓名、性别、年龄、Email、电话、住址。...最后得到52W数据,大约耗时两首歌的时间(7~9分钟)。随后,利用mybatis向mysql插入10000数据。...因为在未开启事务时,更新10000条数据,就得访问数据库10000次。导致每次操作都需要操作一次数据库。...结论:设计到大量单条数据的插入,使用JDBC批处理和事务混合速度最快 实测使用批处理+事务混合插入1亿条数据耗时:174756毫秒 4 补充 JDBC批处理事务,开启和关闭事务,测评插入20次,一次50W
静态数据线上化 有时开发中我们会把一些不变的数据放到小程序项目内,比如城市地址信息,服务条款等,这样的数据尽量能走线上就走线上,当首次加载完后可以缓存到本地。
一、EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。 下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据 type列,连接类型。...四、当只需要一条数据的时候,使用limit 1 这是为了使EXPLAIN中type列达到const类型 五、如果排序字段没有用到索引,就尽量少排序 六、如果限制条件中其他字段没有索引,尽量少用or or...当然,union all的前提条件是两个结果集没有重复数据。...庆幸的是在MySQL中,有全文索引来帮助我们。...十九、关于JOIN优化 LEFT JOIN A表为驱动表 INNER JOIN MySQL会自动找出那个数据少的表作用驱动表 RIGHT JOIN B表为驱动表 注意:MySQL中没有full join
答: show databases; 2.如何创建一个数据库?...答 : create database 最后面在写数据库名;分号结束 3.选择数据库 在进行表,行的相关操作时,要先选择数据库 答: use 后面在写数据库名 ; //选择相应的数据库 这个比较怪可以不加分号...4.要选择了数据库才能查看表 如何查看一下库下面的所有表?...答 : show tables; 5.如何删除数据库 答: drop database 最后写数据库名; 6.修改数据库 能否修改数据库的名字 答: 不能。 phpMyAdmin似乎有这功能?...7.如何在数据库里面建立表???
SQL面试专栏 《SQL145题第2版》 前天分享了50条MySQL常用脚本,有小伙伴说岳哥怎么突然这么卷?...好了咱们今天继续分享MySQL中一些比较实用的小技巧。 1、使用REPLACE INTO来插入或替换数据,避免先删除再插入的操作。...REPLACE INTO table_name (id, name) VALUES (1, 'John'); 注释:如果id为1的记录已存在,则该记录将被更新;否则,将插入一条新记录。...9、使用MySQL事件调度器来执行定时任务。...35、使用备份和恢复策略来保障数据的安全性和可用性,定期进行备份并测试恢复流程: mysqldump -u [username] -p [database_name] > backup.sql mysql
问题 1 数据库添加账号并不是DB 来做,而是运维来做的。 2 每个实例里面存在同样的用户名,并且新建的用户他们也是基本按照人名来进行的建立。...Worker 1 failed executing transaction 'cd620c28-aeb1-11ea-a3d5-205056a53593:14681474' at master log mysql-bin...这里需要通过如下的方法来进行操作恢复. 1 目前是三台从库连接并且复制数据到多源复制的数据库中,我们停止三台从库的复制.并获取当时的GTID 的信息,同时也停止多源复制库的信息. 2 复制每台从库的...的复制方式改为 GTID AUTO Position 的方式. 1 由于 10.50.133.81 和 10.50.133.116 都是从库(对于他们所在的集群中) 首先我们先STOP SLAVE 两个MYSQL...CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('mysql.user'); 最后打开81 ,116从库的start slave _
领取专属 10元无门槛券
手把手带您无忧上云