首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

公司DBA关于MySQL开发的一点经验

尽量不要让数据库做过多运算 数据库主要是用来存储的,我们应避免让数据库做运算,比如写定时任务,存储过程等。复杂的计算应该在程序代码中实现。我们应该尽量简单的使用数据库。...SQL语句要简单 我看过好几百行的SQL,我认为这样不太好,一般一条SQL只能在一个CPU中运算,一条大SQL可能把数据库搞崩。...简单的使用 我们尽量少使用存储过程,触发器,尽量少用MySQL函数处理结果。数据的运算应该交由程序去操作。...我们推荐使用这样的方式 select * from table WHERE id>=23434 limit 11; 网上有人做了测试: 不要在程序端对数据库显示加锁 外部锁对数据库不可控 高并发时是灾难

26220

数据库升级-成为MySQL DBA 博客系列(之二)

数据库供应商通常每个月都会发布一些有bug /安全性修补程序的补丁,我们为什么要关心这些?...其中MySQL主要版本比较少见,通常是次版本升级,但是他们可能会带来一些重要的功能,使得升级是值得的。 在这篇博文中,我们将介绍DBA的一个最基本的任务—次要版本数据库升级和主要数据库升级。...在数据库方面,你也可以做一些通用的测试。为此,您需要一个慢日志格式的查询列表。然后,可以使用pt-upgrade在旧版本和新版本的MySQL上运行它们,比较响应时间和结果集。...个人认为一个DBA除了要考虑性能,更多的是考虑稳定,安全。 次要版本升级 小升级相对容易执行—大多数情况下,您只需要使用发行版的软件包管理器来安装新版本即可。...一旦你这样做,你需要确保升级后MySQL已经启动,然后你应该运行mysql_upgrade脚本。该脚本遍历数据库中的表,并确保它们与当前版本兼容。如果有需要,它也可能修复你的系统表。

1.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据库编程 MySQL 技巧与经验

    要想解决这个问题,可以在当前的表设置引擎为InnoDB、PBXT或SolidDB,但这只是修改了这一个数据库,下次建新的数据库默认引擎还是MyISAM,我们可以在MySQL的安装目录下的配置文件my.ini...以更改 Mysql 默认引擎为 InnoDB为例步骤如下: 查看Mysql存储引擎情况: mysql>show engines,结果是: InnoDB | YES,说明此Mysql数据库服务器支持InnoDB...引擎; 设置InnoDB为默认引擎:在配置文件my.ini中的 [mysqld] 下面加入default-storage-engine=INNODB; 重启Mysql服务器; 登录Mysql数据库mysql...(255) mysql> BEGIN mysql> IF ISNULL(S) THEN mysql> RETURN ''; mysql> ELSEIF N<15 THEN mysql>...(255) mysql> BEGIN mysql> IF ISNULL(S) THEN mysql> RETURN ''; mysql> ELSEIF N<15 THEN mysql>

    81330

    MySQL 数据库设计经验总结

    此文仅在数据库设计层面进行探讨,数据库的运维与底层调优不在讨论范围之内。 更丰富的知识可以在 MySQL 官网文档 查阅。...MySQL 官方文档 https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/index.html 基础知识 存储引擎 通常来说,我们做业务开发,指定存储引擎为...如果业务中需要使用 emoji 表情,那么就必须要设置为 utf8mb4 MySQL 可以在 Server 级、Database 级、Table 级、Column 级进行字符集的设置。...数据库设计 总则 命名以 "_" 分割 数据库层面还是推荐使用 "" 作为分割,这里多说几点:1、约定俗成。长久以来不仅 MySQL ,其他数据库也推荐使用 "",这是一种 SQL 规范。...MySQL supports the SQL standard integer types INTEGER (or INT) and SMALLINT.

    1.3K30

    MySQL DBA面试全揭秘

    MySQL DBA职位最近几年特别热门,不少朋友让我帮忙推荐什么的,但也有很多公司找不到合适的DBA。...本文可以作为MySQL DBA面试官,以及候选人的双向参考 :) 面试流程:我以往做MySQL DBA面试时的流(套)程(路) 一、自我介绍 1、先自我介绍后,再让候选人花2-5分钟做下自我简介:...及InnoDB优化,讲讲自己的见解或者实践经验; 如何确定及实施MySQL高可用方案,不同方案的优缺点对比; 一定规模的MySQL自动化运维经验如何; 在SCHEMA设计方面的经验如何; 基于MySQL...所做过的一些数据库架构方案设计、实施经验。...这些知识对一般的DBA可能不太重要,但想要成为资深DBA数据库架构师的话,这些知识是必不可少的。 先啰嗦说这么多吧,希望对有志成为DBA的同学有些帮助,加油加油↖(^ω^)↗

    1.8K20

    MYSQL主从同步(DBA)配置.md

    文件系统级别同步 drbd(基于文件系统同步网络RAID1),同步所有的业务(Oracle数据库常常这样干) mysql数据库的官方推荐drbd同步数据,所有的单点的服务器都能利用其同步; 数据库同步机制...update,insert,delete交给Master服务器;门户网站常用分布式dbproxy(读写分离,hash负载均衡,健康检查) 根据服务器拆分业务独立并分担压力:有为外部用户提供查询服务的从服务器,有DBA...线程同步状态查看数据库同步是否完成, 用于主库宕机或者人工数据库文件从切换迁移等等; 主库宕机选择最快的从库提升为主,需要查看当然也可以利用mysql的半同步功能,选择固定的库提升为主; (7)主从配置总结...A:用来记录mysql内部增删改查等对mysql数据库有更新的内容的记录 什么时候需要记录binlog的情况?...低权限账户登陆数据库 $ mysql -uweb -pweb@web -S "/data/3307/mysql.sock" #验证从库是否是只读,不能写。

    92020

    数据库 “吃了” DBA

    提到云数据库第一个想当然的问题不是云数据库本身,而是云数据库来了,DBA 都没饭吃了。...1 上了云,DBA数据库底层,以及高可用渐行渐远,属于被架空了状态,如果干上几年的云数据库DBA,估计连实体机上的高可用是什么东西都不知道了,竞争力直线下降。...我们以 PG 和 MYSQL ,MONGODB为例, 1 PG 在搭建的时候你的SCHEMA 是怎么安排的,public作为默认的schema ,扣10分 2 MYSQL 怎么计算一张表大约在多少行数后...无论是PG 还是 MYSQL ,成型方案千千万,但原理是不变的,即使他是很牛逼的云厂商,照样 呵呵。...与时俱进,学习更多的云数据库的知识,如果你能和他们聊的来,并且能互相促进双方的发展,则人家是很愿意和你沟通和讲授一些知识的,属于互利互惠,人家获得你使用的经验和意见反馈,你的获得更多的云数据库的知识,包含原理等

    68420

    DBA入门之路:学习与进阶之经验

    初入数据库之门的朋友们,总是关心如何能够快速提高,不断进步,事实上任何一个技术方向,都没有太多的捷径可走,勤奋与坚持必不可少,但是有一些方法和他人的经验可做借鉴,砥砺自我。...了解Oracle数据库的核心功能与原理,在应对需求和提供服务时才能做到全面公正,这在起步阶段很重要。...DBA生存的四大守则 在《深入浅出Oracle》一书中,我在序言中提到了我所总结的"DBA生存之四大守则",直到今天仍然具备借鉴意义。...所以,作为一个DBA,你需要来制订规范,规范开发甚至系统人员,这样甚至可以规避有意或是无意的误操作,减少数据库的风险。...到数据库 Cloud时代DBA的DevOps最佳实践 - SQL 审核 Oracle Database 12.2新特性详解

    1.1K60

    为什么DBA不让给MySQL数据库中加触发器呢?

    在一次迭代的时候,我给数据库中增加了两个时间字段: `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP...COMMENT '更新时间', 当时是紧急发布在leader的劝说下DBA 允许先上了,DBA当时就提了下个迭代给撤掉。...为什么DBA不让给数据库加触发器呢? 触发器功能强大,轻松可靠地实现许多复杂的功能,为什么又要慎用呢。触发器本身没有过错,但由于我们的滥用会造成数据库及应用程序的维护困难。...在数据库操作中,我们可以通过关系、触发器、存储过程、应用程序等来实现数据操作…… 同时规则、约束、缺省值也是保证数据完整性的重要保障。...如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加了维护的复杂程度。 还有就是个人看法触发器在MySQL服务器执行的效果和在业务i代码中执行的性能浪费相对来说在业务代码比较少吧。

    77410

    MySQL DBA亲授MySQL InnoDB事务ACID实现原理

    说到数据库事务,想到的就是要么都做修改,要么都不做,或者是 ACID 的概念。其实事务的本质就是锁、并发和重做日志的结合体。...我们先来看下 InnoDB 的锁的介绍: InnoDB 中的锁 你可能听过各种各样的 InnoDB 的数据库锁,Gap 锁,共享锁,排它锁,读锁,写锁等等。...原子性、一致性、持久性 ---- 事务隔离性由锁实现,原子性、一致性和持久性由数据库的 redo log 和 undo log 实现。...当事务提交时,日志不写入重做日志文件,而是等待一个事件周期后再执行 Fsync 操作,由于并非强制在事务提交时进行一次 Fsync 操作,显然这可以提高数据库性能。...undo 是逻辑日志,只是将数据库逻辑恢复到原来的样子,但是数据结构和页本身在回滚之后可能不同。 例如:用户执行 insert 10w 条数据的事务,表空间因而增大。

    1.2K30

    MySQL DBA面试高频三十问

    前一阵系统的学习了一下MySQL,也有一些实际操作经验,偶然看到一篇和MySQL相关的面试文章,发现其中的一些问题自己也回答不好,虽然知识点大部分都知道,但是无法将知识串联起来....C=Consistency 系统(数据库)总是从一个一致性的状态转移到另一个一致性的状态,不会存在中间状态....InnoDB默认使用的是可重复读隔离级别. 6、对MySQL的锁了解吗? 当数据库有并发事务的时候,可能会产生数据的不一致,这时候需要一些机制来保证访问的次序,锁机制就是这样的一个机制....解决超大分页,其实主要是靠缓存,可预测性的提前查到内容,缓存至redis等k-V数据库中,直接返回即可. 5、关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?...在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由.比如性能.

    2.8K31

    MySQL事务和锁——《MySQL DBA工作笔记》

    MySQL事务 事务存在的原因 事务存在的目的:保证用户对数据操作对数据是安全的。...避免不可重复读的方式: 重复读(RR,MySQL默认级别):就是在开始读取数据时,不允许修改操作。但会导致由于允许insert操作导致的事务结果出现不同。...MySQL锁机制 Innodb实现了两种类型的行锁:共享锁,排他锁。 共享锁和排他锁 共享锁:允许一个事务读一行,阻止其他事务获得相同数据集的排他锁,多个共享锁是可以并行的。...这里的小红,小明,小花,小刚就是数据库的一条条记录。 他们之间的空隙也就是间隙,而封锁他们之间距离的锁,叫做间隙锁。...间隙锁的目的是为了防止幻读 innodb自动使用间隙锁的条件: 必须在RR级别下 检索条件必须有索引(没有索引的话,mysql会全表扫描,那样会锁定整张表所有的记录,包括不存在的记录,此时其他事务不能修改不能删除不能添加

    92030

    Oracle和MySQL DBA的进阶之路

    在今年数据库技术大会的时候,我在专场"DBA修炼之道”里讲了关于DBA的一些技术建议,没想到得了第三天的“最佳讲师”。奖品是有个蛮不错的音响,没事的时候在客厅放上几个曲子。...主题是“Oracle和MySQL DBA的进阶之路"。...对于Oracle DBA来说,学习MySQL的话学习周期会相对短一些,入门也比较快,但是如果要深入学习MySQL,还是很难的,因为有很多方面都需要深入理解,深入的层次是在源码级,可以做定制,而对于MySQL...对于Oracle和MySQL,还是需要了解下他们目前的位置,最新的DB-Engines的报告显示前三甲稳稳的是关系型数据库,而MySQL是作为开源数据库的第一阵营出现的,当然这个排行榜不要过度解读,本身只是一个流行度的标识...尤其是在CDB部分,自己逼着自己琢磨了一段时间,还沉淀了一些经验和大家做了分享,而18c的亮点就在于自治了,本质上自治和自动化还是有一定的区别,可以简单理解自治是自动化的延伸。

    1.4K60

    如何恢复MySQL数据库:我的经验之谈

    在日常工作中,我们可能会遇到各种原因导致需要重新安装MySQL。无论是由于系统故障、升级或其他原因,我们都希望在重装MySQL后能够顺利地恢复原有的数据库。...在这篇文章中,我将分享我的一些经验,帮助你在遇到类似情况时能够轻松地恢复MySQL数据库。1. 重新安装MySQL 首先,你需要下载并安装适合你操作系统的MySQL版本。...重启MySQL并完成数据加载 最后,重启MySQL服务。如果以上步骤都正确无误,你的数据库应该成功加载,所有的数据表和数据都应该像原来一样可以访问。...结论 数据库的恢复可能初看起来是一个复杂的过程,但只要你遵循上面的步骤并确保所有的配置都设置正确,恢复MySQL数据库应该是一个相对简单的任务。...希望我的经验能够帮助你在面对数据库恢复的时候更加自信和从容。

    18910

    MYSQL 8 MySQL DBA 也该学学复杂查询了

    MYSQL 一直被diss的就是数据分析尤其在窗口函数这一块,相对于O , S , P三个数据库MYSQL在这方面基本上属于空白。MYSQL 8 的到来后,这方面也有了改变。...在别的数据库上有的专门的课程 T-SQL, PLPGSQL, PLSQL等等,也是否有可能在MYSQL上,随着MYSQL8的使用,出现 M- SQL。...这样的操作在MYSQL 5.7中如果要操作的话,这是达到同样结果的写法,在MySQL 5.7 但实际上有些查询在MYSQL5.7是不能进行的。...下面这个语句的意思是,根据员工的工资进行一个排序根据每个员工的工号作为一个排序的partition by ,从这里可以看到每个员工的随着在公司工作的年限,越长,工资的涨幅和总数都是一个向上的过程,这样的复杂操作如果在MYSQL...下面这个SQL 就是相关的完成上面的工作的,如果在MYSQL上完成类似的语句,不使用这样的窗口函数,在 事实上这些也只是窗口函数的冰山一角,以上也仅仅是抛砖引玉,需要学习的东西还很多。

    92310

    MySQL DBA之路 | 性能配置调优篇

    一、简介 数据库服务器需要CPU、内存、 磁盘和网络才能运行,了解这些资源对于DBA来说非常重要,因为任何的超载行为都可能成为限制因素,导致数据库服务器性能不佳。...DBA的主要任务就是调整系统和数据库的配置,避免可用资源的过渡利用和利用不足。 首先,性能优化是一个持续的过程,安装MySQL通常是调整操作系统和数据库配置的第一步。...而数据库是一个动态系统,这是一个永无止境的故事。你的MySQL数据库起初可能是CPU绑定的,因为你有足够的内存和很少的数据。随着时间地推移,它可能会改变,磁盘访问可能会变得更加频繁。...您可能已经听说过将InnoDB缓冲池设置为系统总内存的80%的经验法则。当8GB的内存是巨大的时候,它是有效的,但现在不是这样。...经验法则是将它们设置得足够大,以覆盖至少1小时的写入。 查询缓存 MySQL查询缓存也经常被“调整” 这个缓存存储SELECT语句的散列及其结果。

    1.9K60
    领券