MYSQL数据库分库分表策略和方法

在大数据量、高并发等场景分库分表能够提升性能,并适应业务长期发展,但是过分拆分会使简单事情变复杂

1.限制那肯定是有的,因为系统数据库的表结构信息存储表,字段为:ID INT UNSIGNED 类型,最多42亿多一点,但肯定不会超过;

2.主要是文件系统,对同时打开多少个文件有限制性的:2048,但是可以修改内核参数

3.拆分过多最大的坏处,体现在:数据库的维护上面;

3. 文件IO分配,空间占用方面
innodb_file_per_table
作用:使每个Innodb的表,有自已独立的表空间。如删除文件后可以回收那部分空间。
分配原则:只有使用不使用。但DB还需要有一个公共的表空间。
设置方法:
innodb_file_per_table=1

innodb_file_io_threads
作用:文件读写IO数,这个参数只在Windows上起作用。在LINUX上只会等于4
设置方法:
innodb_file_io_threads=4

innodb_open_files
作用:限制Innodb能打开的表的数据。
分配原则:如果库里的表特别多的情况,请增加这个。这个值默认是300。
设置方法:
innodb_open_files=800 
请适当的增加table_cache

猜你喜欢

转载自my.oschina.net/u/347414/blog/1801631