MySQL
写程序的赵童鞋
Github:https://github.com/Zhao-666
展开
-
高性能mysql之慎用BLOB与TEXT
转载自:http://blog.csdn.net/john1337/article/details/70919212 BLOB与TEXT是为了存储极大的字符串而设计的数据类型,采用二进制与字符串方式存储。mysql对待这两个类型可谓煞费苦心,mysql会把这两种类型的值当做一个独立的对象处理,存储引擎在存储时通常会做特殊处理,当BLOB与TEXT的值太大时,InnoDB会使用专门的“外部”...转载 2018-01-22 18:46:08 · 13488 阅读 · 0 评论 -
MySQL中char、varchar和text的区别
它们的存储方式和数据的检索方式都不一样。数据的检索效率是:char > varchar > text空间占用方面,就要具体情况具体分析了。char:存储定长数据很方便,CHAR字段上的索引效率级高,必须在括号里定义长度,可以有默认值,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间(自动用空格填充),且在检索的时候后面的空格会隐藏掉,所以转载 2018-01-22 18:50:13 · 235 阅读 · 0 评论 -
MySQL的二进制日志记录方式对复制的影响
基于SQL语句的复制格式(SBR)即 binlog_format = statement优点:生成的日志量少,节约网络传输I/O并不强制要求主从数据库的表定义完全相同相比于基于行的复制方式更为灵活缺点:对于非确定事件,如UUID(),无法保证主从复制数据的一致性对于存储过程 ,触发器,自定义函数等进行的修改也可能造成数据的不一致相比于基于行的复制方式在从上执行时需要更多的行锁(推荐)基于行的复制(...原创 2018-06-24 10:03:24 · 293 阅读 · 0 评论 -
数据库分片前的准备
通常来说,如果可以采用分库就尽量不要进行分片,分片后的数据表难以维护,但也会有到不得不分片的时候。如何选择分区键分区键要能尽量避免跨分区查询的发生。例如一个博客表,如果采用每一篇博客的主键ID来进行分区,查询某个用户的博客时则要跨多个分区去汇总数据,性能会比分区前更慢。所以可以考虑使用用户ID来进行分区,则只需要在一个分片中进行查询分区键要能尽量使各个分片中的数据平均。分片就是为了减轻数据库的负载...原创 2018-06-30 10:59:07 · 428 阅读 · 0 评论 -
MySQL主从数据库配置
基于日志点的复制配置优点:是MySQL最早支持的复制技术,Bug相对较少对SQL查询没有任何限制故障处理比较容易缺点:故障转移时重新获取新主的日志点信息比较困难...原创 2018-06-25 21:27:34 · 212 阅读 · 0 评论 -
MMM架构的优缺点
MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现...原创 2018-06-27 07:38:22 · 1499 阅读 · 0 评论 -
MHA架构的优缺点
MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证...原创 2018-06-27 08:01:05 · 4211 阅读 · 0 评论 -
捕获有问题的SQL
启用mysql慢查询日志set global show_query_log_file = /sql_log/show_log.log;set global log_queries_not_using_indexes = on;set global long_query_time = 0.001;set global low_query_log = on;原创 2018-07-09 06:55:24 · 319 阅读 · 0 评论 -
数据库操作规范
数据库命名规范所有数据库对象名称必须小写。因为MySQL是大小写敏感的,Dbname和dbname是两个不一样的数据库命名要做到见名识意,禁止使用MySQL保留关键字。如from,使用的话就会变成 select name,from from user_table;临时表以tmp_开头,备份表以bak_开头并以时间戳结尾所有存储相同数据的列名和列类型必须保持一致。否则在关联查询中会导致隐式的类型转换...原创 2018-07-03 07:53:31 · 1701 阅读 · 0 评论