企业生产MySQL优化介绍
与其他的大型数据库例如 Oracle、DB2、SQL Server等相比,MySQL 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本。
企业生产MySQL是如何优化的呢?
参考答案:
a:硬件的优化:
1、 采用64位cpu,cpu至少4颗,L2缓存越大越好
2、 内存要大,32-64G运行1-2个实例,96-128G运行3-4个实例
3、 机械盘选用sas盘,转速15000以上,用可能的话使用ssd
4、 raid卡使用raid10
5、 网卡多块,千兆以上
6、 数据库不要使用虚拟化,slave硬件要好于master
b:操作系统优化
1、 操作系统选择x86_64位,尽量采用xfs文件系统
2、 优化磁盘存储参数
3、 优化内核参数
4、 优化网络等
c:mysql构架优化
1、根据内存大小,配置服务器跑多实例
2、主从复制采用mixed模式,尽量不要跨机房同步,若要跨机房,尽量采用远程写,本地读
3、定期检查、修复主从复制的数据差异
4、业务拆分,搜索功能不使用MySQL数据库执行;某些高并发,安全性一般的业务使用nosql,如:memcache、 redis等
5、数据库前端加cache,如memcache,用于用户登录,商品查询
6、动态数据静态化,整个文件静态化,页面片段静态化
7、数据库集群读写分离,一主多从,通过dbproxy进行集群读写分离
8、单表超过800万,拆库拆表,如人工将(登录、商品、订单)拆表拆库
9、选择从库备份,并且对数据库进行分表分库备份
d:MySQL数据库层面优化
1、 优化my.cnf参数
2、 优化库表设计,包括字符集、字符串长度、创建短索引、多用复合索引;
3、 SQL语句优化,减少慢语句数量;
e:数据库管理流程、制度优化
1、 人的流程:开发—>核心运维/DBA
2、 测试流程:内网 IDC测试线上执行
3、 客户端管理,PHPMYADMIN
f:MySQL数据库安全优化
1、 数据库禁止设置外网
2、 数据库文件权限优化;
3、 授权用户权限限制,尽量专库专用户
4、 限制开发对生产库的操作权限
5、 防止SQL语句注入
总结
本文关于企业生产MySQL优化介绍的先关内容就到这里,希望对大家有所帮助。感兴趣的朋友可以参阅:Oracle分页查询性能优化代码详解、ORACLE SQL语句优化技术要点解析、C/C++ 编译器优化介绍等内容,有什么问题可以随时留言,小编会及时回复大家的。
相关推荐
-
MySQL数据库21条最佳性能优化经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情. 当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被M
-
MySQL优化表时提示 Table is already up to date的解决方法
在后台使用phpMyAdmin对数据库进行优化时,显示成"Table is already up to date". 很多人可能会对这次感到担心,因为默认优化表后提示是"status OK",如下: Table Op Msg_type Msg_text commentmeta optimize status OK comments optimize status OK term_taxonomy optimize status OK usermeta optimiz
-
简单谈谈MySQL优化利器-慢查询
慢查询 首先,无论进行何种优化,开启慢查询都算是前置条件.慢查询机制,将记录过慢的查询语句(事件),从而为DB维护人员提供优化目标. 检查慢查询是否开启 通过show variables like 'slow_query_log'这条语句,可以找到慢查询的状态(On/Off). 开启慢查询 本文使用的MySQL版本:MariaDB - 10.1.19,请注意,不同版本的MySQL存在差异. 在[mysqld]下加入: [mysqld] port= 3306 slow-query-log=1 #
-
企业生产MySQL优化介绍
与其他的大型数据库例如 Oracle.DB2.SQL Server等相比,MySQL 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度.对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本. 企业生产MySQL是如何优化的呢? 参考答案: a:硬件的优化: 1. 采用64位cpu,cpu至少4颗,L2缓存越大越好 2. 内存要大,32-64G运行1-2个实例,96-128G运行3-4个实例 3.
-
MySQL索引介绍及优化方式
目录 一.导致sql执行慢的原因 二.分析原因时,一定要找切入点 三.什么是索引? 四.Explain分析 1.id 2.select_type 3.table 4.type(★) 5.possible_key 6.key(★) 7.key_len 8.ref(★) 9.rows(★) 10.extra 五.优化案例 六.是否需要创建索引? 一.导致sql执行慢的原因 硬件条件限制: io吞吐量小,形成瓶颈(读取磁盘数据) 网络传输速度慢 内存不足(读取磁盘数据加载到内存) 程序设计方面: 没有
-
MySQL数据库性能优化介绍
目录 为什么做优化?? 从哪些方面入手?? 解决方案是什么??? 要怎样选择??? SQL优化 总结 为什么做优化?? 因为数据量太多了,项目部署上线再到用户使用,每天数据增长几十万条,给服务器带来非常大的负担,互联网一直追求高性能,可是随着业务规模变大,用户数量变多,服务器的性能越来越差,因此我们不得不对数据库有更高要求. 从哪些方面入手?? 第一,是查询的速度,我们期望数据量到达TB级别仍然能够实现百万级别查询速度. 第二.是并发量,我们对它的要求能够同时处理几千甚至上万的并发访问,还要配
-
mysql优化利器之explain使用介绍
一.语法 {EXPLAIN | DESCRIBE | DESC} tbl_name [col_name | wild] {EXPLAIN | DESCRIBE | DESC} [explain_type] SELECT select_options explain_type: {EXTENDED | PARTITIONS} 二.数据库准备 表一: DROP TABLE IF EXISTS `products`; SET @saved_cs_client = @@character_set_cli
-
MySQL优化之如何写出高质量sql语句
前言 关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂.这篇文章就来给大家详细介绍了26条优化建议,下面来一起看看吧 1. 查询SQL尽量不要使用全查 select *,而是 select + 具体字段. 反例: select * from student; 正例: select id,name, age from student; 理由: 只取需要的字段,可以节省资源.减少CPU和IO以及网络开销. select * 进行查询时,无法使用到覆盖索引,就会
-
MySQL优化方案之开启慢查询日志
目录 前言 设置慢查询日志 测试 附:日志分析工具mysqldumpslow 总结 前言 本方案只适应于小的项目.项目未上线或者紧急情况下可采用这种方式,一旦开启慢日志查询会增加数据库的压力,所以一般采用后台对数据操作时间写入日志文件中,每一周定时进行清除日志 mysql优化方案:开启慢查询日志(查询sql执行超过一秒以上sql等等) 开启慢查询日志:可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. 参数说明: slow_query_log
-
MySQL 优化 index merge引起的死锁分析
目录 背景 死锁日志 表结构 执行计划 为什么会用 index_merge(索引合并) 解决方案 一.从代码层面 二.从MySQL层面 背景 生产环境出现死锁流水,通过查看死锁日志,看到造成死锁的是两条一样的update语句(只有where条件中的值不同), 如下: UPDATE test_table SET `status` = 1 WHERE `trans_id` = 'xxx1' AND `status` = 0; UPDATE test_table SET `status` = 1 WH
-
mysql 优化日记
同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更多的被存以得到更好的性能. 安装好mysql后,配制文件应该在/usr/local/mysql/share/mysql目录中,配制文件有几个,有my-huge.cnf my-medium.cnf my-large.cnf my-small.cnf,不同的流量的网站和不同配制的服务器环境
-
MySQL优化之连接优化
上文MySQL优化之缓存优化 这篇文章中提到了一个很重要的概念,就是show variables是用来表示系统编译或者配置在my.cnf中的变量值.而show status则称之为状态值,显示的是当前服务实例运行所具有的状态信息,是一个动态改变的值.因此常用来观测当前MySQl的运行是否正常,如果不正常那么依靠调整静态参数来提高MySQL的性能.所以明白这两个概念的不同,是后面调优的基础. MySQL 连接优化 记得有一次在公司内部连接MySQL的时候,总是连接不上.找到DBA后,经过排查原因,
-
MySQL优化配置文件my.ini(discuz论坛)
在Apache, PHP, MySQL的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分.对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接影响到论坛的速度和承载量!同时,MySQL也是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的观察统计并且根据经验进行判断,然后设置合理的参数. 下面我们了解一下MySQL优化的一些基础,MySQL的优化我分为两个部分,一是服务器物理硬件的优化,二是MySQL自身(my.cnf)的优化. 一.服务
随机推荐
- 通过剪贴板实现将DataGridView中的数据导出到Excel
- 深入oracle分区索引的详解
- Jquery中扩展方法extend使用技巧
- android针对json数据解析方法实例分析
- 使用 Iisext.vbs 启用Web服务扩展的方法
- Java实现从数据库导出大量数据记录并保存到文件的方法
- Ruby元编程基础学习笔记整理
- ASP.NET Datagridview自动换行的小例子
- php下常用表单验证的正则表达式
- python继承和抽象类的实现方法
- C++的静态联编和动态联编详解
- javascript中数组array及string的方法总结
- python解析xml文件实例分享
- Python实现简单截取中文字符串的方法
- jQuery如何防止这种冒泡事件发生
- Android自定义个性化的Dialog示例
- 解决安装VS2008无法更改默认路径的问题
- 无法将函数定义与现有的声明匹配 问题的解决办法 分享
- Android实现上传文件功能的方法
- Android ViewPager实现左右滑动翻页效果