核心军规 尽量不在数据库做运算 控制单表数据量 纯INT不超过10M条,含Char不超过5M条 保持表身段苗条 平衡范式和冗余 拒绝大SQL,复杂事务,大批量任务 字段类军规 用好数值字段,尽量简化字段位数...把字符转化为数字 优先使用Enum或Set 避免使用Null字段 少用并拆封Text/Blob 不在数据库中存图片 索引类军规 谨慎合理添加索引 字符字段必须建立前缀索引?...数据库的字符集,要用 utf8mb4,而不是utf8。...因为MySQL的utf8不是真正的UTF-8,只支持最多三个字节的字符。真正的UTF-8可能会出现四个字节的字符。...MySQL 从来没有修复这个 Bug,而是使用另外的解决方法:真正的UTF-8字符集用 utf8mb4的名字提供。
一、一台服务器最大能打开的文件数 1、限制参数 我们知道在Linux中一切皆文件,那么一台服务器最大能打开多少个文件呢?...那么一台服务器最大能建立多少条连接呢?...当他向MySQL请求数据的时候,他又变成了客户端。...2、一台服务端机器最大究竟能支持多少条连接 因为这里要考虑的是最大数,因此先不考虑连接上的数据收发和处理,仅考虑ESTABLISH状态的空连接。那么一台服务端机器上最大可以支持多少条TCP连接?...这样会消耗掉大约不到20GB内存用来保存这500w条连接对应的socket。还剩下100GB以上的内存来应对接收、发送缓冲区等其他的开销足够了。所以,一亿用户,仅仅需要20台服务器就差不多够用了!
mysql的varchar到底能存多少个字符 结论 (65535字节-其他列所占用的子节-varchar列长度-null标识占用字节数)/3,向下取整....注意 4.0版本及以下,MySQL中varchar长度单位是字节,如varchar(20),指的是20字节; 5.0版本及以上,MySQL中varchar长度单位是字符。...测试环境 mysql5.7,存储引擎innodb,utf8字符集 GBK编码: 一个英文字符占一个字节,中文2字节,单字符最大可占用2个字节。
想进大厂,Mysql 不会那可不行,来接受 Mysql 面试挑战吧,看看你能坚持到哪里? 1. 能说下myisam 和 innodb的区别吗?...非聚簇索引(二级索引)保存的是主键id值,这一点和myisam保存的是数据地址是不同的。 ? 最终,我们一张图看看InnoDB和Myisam聚簇和非聚簇索引的区别 ? 3....一致性指的是数据库总是从一个一致性的状态转换到另外一个一致性的状态。比如A转账给B100块钱,假设中间sql执行过程中系统崩溃A也不会损失100块,因为事务没有提交,修改也就不会保存到数据库。...持久性指的是一旦事务提交,所做的修改就会永久保存到数据库中。 而隔离性有4个隔离级别,分别是: read uncommit 读未提交,可能会读到其他事务未提交的数据,也叫做脏读。...小红开启事务current_version=7插入一条数据,结果是这样: id Name create_version delete_version 1 张三 1 2 李四 2 3 王五 7 小明执行插入名字
前言 程序员平时和mysql打交道一定不少,可以说每天都有接触到,但是mysql一张表到底能存多少数据呢?计算根据是什么呢?...同样的在MySQL中为了提高吞吐率,数据也是分页的,不过MySQL的数据页大小是16KB。(确切的说是InnoDB数据页大小16KB)。详细学习可以参考官网 我们可以用如下命令查询到。...mysql> SHOW GLOBAL STATUS LIKE 'innodb_page_size'; +------------------+-------+ | Variable_name |...了解了节点的概念和每个节点的大小为16kb之后,咱们计算mysql能存储多少数据就容易很多了 具体计算方法 根节点计算 首先咱们只看根节点 比如我们设置的数据类型是bigint,大小为8b ?...16 = 21902400 (千万级条) 其实计算结果与我们平时的工作经验也是相符的,一般mysql一张表的数据超过了千万也是得进行分表操作了。
前言 我们在进行Python编程的时候,时常要将一些数据保存起来,其中最方便的莫过于保存在文本文件了。但是如果保存的文件太大,用文本文件就不太现实了,毕竟打开都是个问题,这个时候我们需要用到数据库。...提到数据库,相信大部分人都不会陌生,今天我们要学的就是数据库中小编自认为最棒的Mysql数据库了。 一、下载导入模块 为了让Python与Mysql 交互,这里我们需要用到Pymsql模块才行。...,可以看下连接成功的打印信息: 可以看到我们打印了Mysql的版本和Host信息。...,Python也能轻松帮我们搞定。...: db.commit() finally: cur.close() db.close() 六、总结 在我们进行网络爬虫的时候,需要保存大量数据,这个时候数据库就派上用场了,可以更方便而且更快捷保存数据
mysql 数据安装的时候默认的数据库文件保存路径是在C:\ProgramData\MySQL\MySQL Server 5.5\data文件下的,但是我们安装数据库在服务器上的时候往往是不要在...C盘中,所有我们就想要把数据保存的文件给更改了,那我们就来看看这样该怎么样来操作呢? ...首先,我们必须把我们的Mysql 数据的服务给停掉,在cmd 中输入net stop mysql (停掉mysql 数据库) ,但是我们往往可能碰到的情况是你所用的用户是不具备这种权限的,那么我们只能够管理里面把...mysql 数据库给停了,然后才是真正的操作: 1、新建文件夹D:\mysql\data(这是你自己希望的保存路径); 2、找到你的数据库数据文件默认的保存路径(C:\ProgramData\MySQL...\MySQL Server 5.5\data),复制里面所有的数据到希望的目录下(D:\mysql\data); 3、找到mysql的安装目录(C:\Program Files (x86)\MySQL
来自:www.slideshare.net/mysqlops/mysql-9838563 来自一线的实战经验,主要针对DBA和后端开发人员,总是在灾难发生后,才想起容灾的重要性;总是在吃过亏后,才记得曾经有人提醒过...核心军规 尽量不在数据库做运算 控制单表数据量 纯INT不超过10M条,含Char不超过5M条 保持表身段苗条 平衡范式和冗余 拒绝大SQL,复杂事务,大批量任务 字段类军规 用好数值字段,尽量简化字段位数...把字符转化为数字 优先使用Enum或Set 避免使用Null字段 少用并拆封Text/Blob 不在数据库中存图片 索引类军规 谨慎合理添加索引 字符字段必须建立前缀索引?
MySQL数据库开发的 36 条军规 标签:数据库 核心军规(5个) 尽量不在数据库做运算。 控制单表数量:行不超过500W条,超出分表;列不超过50个,超过拆表。...2147483648,2147483647][0,4,294,967,295]BIGINT8byte[-9223372036854775808,9223372036854775807][0,18446744073709551615] 能转数字的尽量转数字...NULL(NULL字段很难查询优化、NULL字段的索引需要额外空间、NULL字段的复合索引无效) 尽量少用text/blob类型(尽量使用varchar代替text字段),需要的时候请拆表 不在数据库存图片...pinyin`(8)), 不在列上做运算 Innodb主键推荐使用自增列(主键建立聚簇索引,主键不应该被修改,字符串不应该做主键) 不用外键(由程序保证约束) SQL类军规(16个) SQL语句尽可能简单(一条SQL...只能在一个cpu运算,大语句拆小语句,减少锁时间,一条大SQL可以堵死整个库) 简单的事务(事务时间尽可能短,坏的代码案例:上传图片事务) 避免使用trigger/func(触发器、函数不用,由客户端程序取而代之
TUTORIAL TO SHARE MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。...,这篇文章可能解决不了您的问题』; 如若结果中的 value 字段与上图有出入,请继续阅读本文; 修改数据库编码: ALTER DATABASE database CHARACTER SET = utf8mb4...unicode_ci;; 编辑 my.ini 文件,添加或修改如下内容: Thinkphp5开发APP接口案例 SHARE THE BODY 最近使用Thinkphp5 写APP接口,效果:用户留言评论的时候可以保存...Emoji 表情及特殊符号因为app是多应用开发,所以只好从数据库下手配置。...3.在APP留言效果,Emoji 表情及特殊符号就可以保存了。
TPC-H测试标准,以8张表,22个查询作为基础,在一定时间内(通常是1小时),通过7个并发查询,衡量数据库的每秒处理事务数,作为数据库性能度量标准。...有了 HammerDB,我们唯一要做的事情,就是指定一个可用的测试数据库就可以。 image 这里需要说明的是 Scale Factor,也就是扩展因子。说人话,就是数据库大小配置。...当同时有10个用户访问数据库时,假设他们同时执行1条 SELECT 语句。此时,并发数是10,Throughput 也是10,但你能不能说数据库并发度不够呢?不能。...因为此时这并发的10个用户,都对速度感到满意,说明完全可以再容纳更多的人来数据库查询。 于是,增加了100个人来,还是运行 一条SELECT语句。...那么是不是 Throughput 为6,就是我的数据库极限了呢,我怀疑,可以更高。
写在前面 上一篇(https://www.tech1024.cn/original/2951.html )说了如何创建项目,并爬去网站内容,下面我们说一下如何保存爬去到的数据 开始爬取 创建Spider...Item数据容器 在scrapyDemo目录下创建ImoocCourseItem.py,这个类就是我们用了保存数据的容器,我们定义了标题、图片、简介、地址。...这里面我们用到了数据库的操作DBHelper类,那么我们在scrapyDemo/db目录下创建dbhelper.py 模块,记得再创建一个init.py哦。...这里用到了pymysql和adbapi,adbapi是python的数据库连接池,可以pip安装: 这里面还用到了getprojectsettings方法,意思是从配置文件settings.py里边获取数据库配置信息...,我们在scrapyDemo目录下的settings.py文件最后加入数据库信息 建表语句如下: 大功告成 我们在命令行运行项目 如果没有报错,我们的数据库是不是有数据了呢
核心军规 1、不在数据库做运算 cpu计算务必移至业务层 2、控制单表数据量 int型不超过1000w,含char则不超过500w; 合理分表; 限制单库表数量在300以内; 3、控制列数量...good case: 'age' int not null default 0 10、少用text/blob varchar的性能会比text高很多; 实在避免不了blob,请拆表; 11、不在数据库里存图片...只能在一个cpu运算; 大语句拆小语句,减少锁时间; 一条大sql可以堵死整个库; 18、简单的事务 事务时间尽可能短; 19、避免使用trig/func 触发器、函数不用; 客户端程序取而代之;...where phone=’159′ or phone=’136′; => select id from t where phone in (’159′, ’136′); 22、OR改写为UNION mysql...少用连接join 28、少用group by 分组; 自动排序; 29、请使用同类型比较 30、使用load data导数据 load data比insert快约20倍; 31、打散批量更新 32、新能分析工具
前言 程序员平时和mysql打交道一定不少,可以说每天都有接触到,但是mysql一张表到底能存多少数据呢?计算根据是什么呢?...接下来咱们逐一探讨,除了小编总结的面试题以外,小编还整理了一份MySQL的实战学习笔记,分享给正在阅读的小伙伴们。...同样的在MySQL中为了提高吞吐率,数据也是分页的,不过MySQL的数据页大小是16KB。(确切的说是InnoDB数据页大小16KB)。详细学习可以参考官网 我们可以用如下命令查询到。...了解了节点的概念和每个节点的大小为16kb之后,咱们计算mysql能存储多少数据就容易很多了 具体计算方法 根节点计算 首先咱们只看根节点 比如我们设置的数据类型是bigint,大小为8b [1612869840279...16 = 21902400 (千万级条) 其实计算结果与我们平时的工作经验也是相符的,一般mysql一张表的数据超过了千万也是得进行分表操作了。
例如,Oracle支持的“关系——对象”数据库模型 现在所有的数据库都支持容器迁移 关系数据库可以在前面做一个redis非关系数据库 就像cpu与硬盘之间的内存一样 二、Mysql数据库的介绍 MySQL...是一种关系型数据库管理系统,它将数据保存在不同的表中。...由于它的体积小、速度快、成本低、最重要的是开放源码,所以中小型的公司都喜欢使用它作为网站数据库 1、MySQL数据库的特点 (1)MySQL数据库是用C和C++语言编写的,并且使用了多种编辑器进行测试,...,也可以作为一个库嵌入到其他的软件中并提供多种语言支持 2、MySQL数据库能做什么 (1)它可以存储大量的数据,方便用户检索和访问 (2)用于保存信息数据以及信息的一致性和完整性 (3)数据的共享和安全...的全局变量 使其能运行在每个bashshell环境中 echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
MySQL作为关系型数据库的典型代表,在国内环境里经历风雨磨砺,不断地精进,已经在开发和运维方面,成型了一套的规范。...这些规范让了解和使用MySQL更加得心应手,并对后期的一些问题起到了很好的预防作用。 结合个人经验,下面具体讲解十个“合规检查”: 1. 数据库大表信息查看 统计某库下各表大小,不要存在过大的表信息。...做好上线数据库设计方面的合规检查,是必不可少的流程。...擅长MySQL、Redis、MongoDB数据库高可用设计和运维故障处理、备份恢复、升级迁移、性能优化。自学通过了MySQL OCP 5.6和MySQL OCP 5.7认证。...2年多开发经验,10年数据库运维工作经验,其中专职做MySQL工作8年;曾经担任过项目经理、数据库经理、数据仓库架构师、MySQL技术专家、DBA等职务;涉及行业:金融(银行、理财)、物流、游戏、医疗、
一、单个数据库服务器的缺点 数据库服务器存在单点问题; 数据库服务器资源无法满足增长的读写请求; 高峰时数据库连接数经常超过上限。...二、如何解决单点问题 增加额外的数据库服务器,组建数据库集群; 同一集群中的数据库服务器需要具有相同的数据; 集群中的任一服务器宕机后,其它服务器可以取代宕机服务器。...三、MySQL主从复制架构 1、主库将变更写入到主库的binlog中 一些MySQL版本并不会开启二进制日志,所以一定要检查是否开启; 如果刚开始没有开启,后面再进行开启的话,需要重启数据库才能生效,...目前MySQL支持两种复制类型: 基于二进制日志点的复制 基于GTID的复制(MySQL>=5.7推荐使用) 四、MySQL主从配置步骤 1、配置主从数据库服务器参数 有些参数配置后需要数据库重启才能生效...主从复制的一些缺点 虽然主从复制增加了一个数据库副本,但从数据库和主数据库的数据最终会是一致的。 之所以说是最终一致,因为MySQL复制是异步的,正常情况下主从复制数据之间会有一个微小的延迟。
源码查看是,我们发现它提供了8中导出文件的方式,如下图,我们这里只举例保存json格式。...doubanBook.json 二、通过Pipeline把数据保存到MYSQL数据库 第一步,先创建一个数据库spider_db...配置settings 最后,执行douban_book爬虫,查看数据库的结果,所有的数据都成功插入到mysql数据表中。 ?...数据入库 三、对上面数据插入MYSQL数据库的说明 我们知道上面的方法是通过同步的方式把Item中的数据插入到MYSQL数据库中,然后在实际应用中,为了能够更快速度地响应数据插入的请求,我们都是采用异步的方式把数据插入...MYSQL数据库。
点击关注"故里学Java" 右上角"设为星标"好文章不错过 前边的在《一条SQL查询在MySQL中是怎么执行的》中我们已经介绍了执行过程中涉及的处理模块,包括连接器、分析器、优化器、执行器、存储引擎等。...接下来,分析器会经过语法分析和词法分析,知道了这是一条更新语句后,优化器决定要使用哪一个索引,然后执行器负责具体的执行,先找到这一行,然后做更新。...我们先创建一张表,这个表有主键ID和一个整型字段c: mysql> create table demo T (ID int primarty ,c int); 然后将ID=2的这一行的值加1 mysql...假设redolog写完,binlog还没写完,MySQL进程异常重启了。我们知道,redolog写完以后,系统即使崩溃了,也可以将数据恢复,所以在MySQL重启后,这一行会被恢复成1。...我们可以看到如果不使用“两阶段提交",那么数据库的状态就会和用日志恢复出来的库不一致。
job stores 存储 job stores 支持四种任务存储方式 memory: 默认配置任务存在内存中 mongdb: 支持文档数据库存储 sqlalchemy: 支持关系数据库存储 redis...: 支持键值对数据库存储 默认是存储在内存中,也就是重启服务后,就无法查看到之前添加的任务了。...我们希望任务能保存到数据库,让任务一直都在,可以使用sqlalchemy保存到mysql数据库。...mysql 数据库持久化配置 # mysql 数据库持久化配置 from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore SQLALCHEMY_DATABASE_URI...'default': SQLAlchemyJobStore(url=SQLALCHEMY_DATABASE_URI) } MongoDB 数据库持久化配置 # MongoDB 数据库持久化配置
领取专属 10元无门槛券
手把手带您无忧上云