mysql数据库对1亿条数据的分表方法设计:
目前针对海量数据的优化有两种方法:
(1)垂直分割
优势:降低高并发情况下,对于表的锁定。
不足:对于单表来说,随着数据库的记录增多,读写压力将进一步增大。
(2)水平分割
如果单表的IO压力大,可以考虑用水平分割,其原理就是通过hash算法,将一张表分为N多页,并通过一个新的表(总表),记录着每个页的的位置。
假如一个门户网站,它的数据库表已经达到了1亿条记录,那么此时如果通过select去查询,必定会效率低下(不做索引的前提下)。为了降低单表的读写IO压力,通过水平分割,将这个表分成10个页,同时生成一个总表,记录各个页的信息,那么假如我查询一条id=100的记录,它不再需要全表扫描,而是通过总表找到该记录在哪个对应的页上,然后再去相应的页做检索,这样就降低了IO压力。
LEFT()函数是一个字符串函数,它返回具有指定长度的字符串的左边部分。
下面是LEFT()函数的语法 -
INTERVAL关键字
INTERVAL关键字可以用于计算时间间隔,可以有以下用法。
1,直接计算时间间隔。
例1:查询当前时间之前2个小时的日期:
MySQL DATE_ADD() 函数
定义和用法
DATE_ADD() 函数向日期添加指定的时间间隔。
语法
DATE_ADD(date,INTERVAL expr type)
我们希望向 "OrderDate" 添加 2 天
DATE_ADD(OrderDate,INTERVAL 2 DAY)
CAST函数 将任何类型的值转换为具有指定类型的值 https://www.yiibai.com/mysql/cast.html
rand() 的取值范围为[0,1)
tinyint字段举例 unsigned 字段的取值范围是0-255,而 signed 的范围是-128 - 127
SECOND 秒
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)