当前位置:首页 > SQL

如何处理MySQL每月5亿的数据

happyfhb8年前 (2018-05-29)SQL2291
摘要: 第一阶段: 1,一定要正确设计索引 2,一定要避免SQL语句全表扫描,所以SQL一定要走索引(如:一切的 > < != 等等之类的写法都会导致全表扫描) 3,一定要避免 limit 10000000,20&nb…

 

第一阶段:
1,一定要正确设计索引
2,一定要避免SQL语句全表扫描,所以SQL一定要走索引(如:一切的 > < != 等等之类的写法都会导致全表扫描)
3,一定要避免 limit 10000000,20 这样的查询
4,一定要避免 LEFT JOIN 之类的查询,不把这样的逻辑处理交给数据库
5,每个表索引不要建太多,大数据时会增加数据库的写入压力

第二阶段:

1,采用分表技术(大表分小表)

a)垂直分表:将部分字段分离出来,设计成分表,根据主表的主键关联
b)水平分表:将相同字段表中的记录按照某种Hash算法进行拆分多个分表

2,采用mysql分区技术(必须5.1版以上,此技术完全能够对抗Oracle),与水平分表有点类似,但是它是在逻辑层进行的水平分表

第三阶段(服务器方面):

1,采用memcached之类的内存对象缓存系统,减少数据库读取操作
2,采用主从数据库设计,分离数据库的读写压力
3,采用Squid之类的代理服务器和Web缓存服务器技术

PS:由于篇幅问题,我只简单说一些基本概念,其实里面每个知识点关系到的内容都很多。特别是第一阶段,很多工作几年的程序员,都不能完全理解。我觉得要真正理解索引,最好的办法就是在1000W-亿级以上的数据,进行测试SQL语句,再结合 explain 命令进行查看SQL语句索引情况。


扫描二维码推送至手机访问。

版权声明:本文由海海日记-冯海滨博客发布,如需转载请注明出处。

本文链接:http://www.fenghaibin.com/?id=1286

“如何处理MySQL每月5亿的数据” 的相关文章

sql trim()函数去掉两头空格

1.sql trim()函数去掉两头空格sql语法中没有直接去除两头空格的函数,但有ltrim()去除左空格rtrim()去除右空格。合起来用就是sql的trim()函数,即select ltrim(rtrim(UsrName))2.distinct 选择多列,其中一列不能重复,其他列取最大值。Go…

使用sql server management studio 2008 连接数据库,无法查看数据库,提示 无法为该请求检索数据 错误916

使用sql server management studio 2008 连接数据库,无法查看数据库,提示 无法为该请求检索数据 错误916

今日使用sql server management studio 2008 连接远程数据库,可以链接上,但是无法查看自己的数据库,点击数据库后,提示 无法为该请求检索数据 错误916 解决方法如下点击左侧的数据库,然后到右侧的 “名称”注意 如果点击 没有出现对象自愿管理器 请按F7  然…

sql2008 不允许所请求的注册表访问权

百度 谷歌都照了也没有答案。 不允许访问大部分出在win7下 非管理员权限 获取注册表。其实解决方案很简单1. 右键使用管理员打开2. 自己做一个小程序 启动时 先获取 管理员权限 然后 在通过那个程序打开sql2008 可以用 pross.open 这个函数。就继承了 管理员权限就ok了。…

sqlserver 数据库查看索引和创建索引

创建索引:create clustered Index 索引名 on 表(列名)查看索引:sp_helpindex 表 …

DBCC CHECKDB用法详解

手工修复数据库…

无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象解决方法

无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象解决方法发现根本原因了:management studio--->服务器对象-->链接服务器-->Micros…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。