把一个很多列的表拆分为多个表,有效解决表宽度问题
- 不常用的字段单独存放到一个表
- 经常用的字段单独存放到一个表
- 把较大字段单独存放到一个表,比如产品的描述信息不建议放在产品主表
文章插图
系统
1、服务器网络方向,修改/etc/sysctl.conf文件
- net.ip4.tcp_max_syn_backlog=65535 ——增加tcp支持的队列数
- net.ip4.tcp_max_tw_buckets=10000
- net.ip4.tcp_tw_reuse=1
- net.ip4.tcp_tw_recycle=1
- net.ip4.tcp_fin_timeout=10 ——上面这四项,断开连接时减少资源回收
可以使用ulimit -a查看目录限制,修改/etc/security/limits.conf增加下面内容来修改打开文件数量的限制 。
- soft nofile 65535 ——单个用户可用的最大进程数量(软限制)
- hard nofile 65535 ——单个用户可用的最大进程数量(硬限制)
mysql配置文件一般位于/etc/my.conf或/etc/mysql.conf
文章插图
/etc/mysql/my.conf
- innodb_buffer_pool_size ——配置innodb的缓冲池,如果只有Innodb引擎的表,建议设置为总内存的75%左右,如果还有myIsam表,那可以减小一点 。
- innodb_buffer_pool_instances ——5.5后新增参数,设置缓冲池的个数,默认一个缓冲池
- innodb_log_buffer_size ——innodb的log缓冲的大小,一遍设置小点即可
- innodb_flush_log_at_trx_commit ——对innodb的I/O效率影响很大,默认1,可以设置【0,1,2】,建议设置2,如果对数据安全性要求很高设置默认1 。
- innodb_read_io_threads ——读的I/O进程数,默认4,5.5可根据cpu核数及系统负载调整读的并发数
- innodb_write_io_threads ——写的I/O进程数,默认4,5.5可根据cpu核数及系统负载调整写的并发数
- innodb_file_per_table ——控制每个表使用独立的空间,默认off,建议设置on,增加并发的读写效率
文章插图
cpu
mysql的一些工作只能使用到单核cpu,所以cpu核数并不是越多越好,5.5建议服务器不要超过32核;对于硬件的优化,平时涉及到的不多,也不在开发人员的优化范围之内,所以大家有兴趣可以自己去搜集资料学习 。
好了,今天的分享就到这里了,如果喜欢我的内容,欢迎转发~~收藏~~
谢谢!
【Mysql性能优化之逐级优化,开发人员必备技巧】
推荐阅读
- MySQL锁详细讲解
- 数据库读写分离方案,实现高性能数据库集群
- 数据库架构举例说明
- Jmeter分布式部署测试做压力性能测试
- MySQL常用的字符型数据
- MySQL与 PostgreSQL 数据库功能对比
- 一文详解 MySQL 高可用之 DRBD
- mysql入门级,20分钟搞定
- like,%,_ Mysql 使用通配符进行模糊查询
- 允许远程连接MySQL数据库教程