关于 MySQL 中的 Innodb 引擎就不多说了, 毕竟除了MyISAM 之外, 它的应用最广泛. Innodb 存储数据有两种方式: 共享表空间 和 独立表空间. 顾名思义, 共享表空间 就是把所有数据库数据放在一个或多个文件中( 这种方式的话,使用裸设备倒是很方便); 独立表空间 就是采用和MyISAM 想同的方式, 每个表拥有一个独立的数据文件( .idb )。
在服务器资源有限,单表数据不是特别多的情况下, 独立表空间明显比共享方式效率更高. 但是MySQL 默认是共享表空间, 现在LD 来演示一下转换方法.
### 备份数据库, mysqldump 参数请根据自个儿情况修改
#mysqldump -uroot -p123456 -A –opt > backup.sql### 停止服务器
#sudo /etc/rc.d/mysqld stop### 清空数据
#sudo rm -rf /var/mysql/data/*### 重新生成表结构, 修改权限
#sudo mysql_install_db
#sudo chown mysql:mysql -R /var/mysql/data/### 关键: 修改配置
#sudo vim /etc/mysql/my.cnf
### [mysqld] 段添加 innodb_file_per_table### 启动MySQL, 修改数据库用户授权
#sudo /etc/rc.d/mysqld start
#mysqladmin -uroot password ’123456′### 导回数据
#mysql -uroot -p123456 < backup.sql
OK 大功告成! [mysqld] 有个很有用的配置项 memlock :使MySQL 不写入Swap. 可惜只有在运行MySQL 的用户具有root 权限才行.
Query Cache 在以内容为主的需求下表现很不错, 但业务逻辑一复杂就拖后腿,郁闷ing, set global query_cache_size = 0; 可以运行时关闭Query Cache.
最新评论