mysql内存清理机制_MYSQL内存机制
MYSQL 内存机制
对于任何⼀个数据库管理系统来说,内存的分配使⽤绝对可以算的上是其核⼼之⼀了,所以很多希望更为深⼊了解某数据库管理系统的⼈,都会希望⼀窥究竟,我也不例外。
从内存的使⽤⽅式MySQL 数据库的内存使⽤主要分为以下两类
线程独享内存
全局共享内存
线程独享内存
在 MySQL 中,线程独享内存主要⽤于各客户端连接线程存储各种操作的独享数据,如线程栈信息,分组排序操作,数据读写缓冲,结果集暂存等等,⽽且⼤多数可以通过相关参数来控制内存的使⽤量。
线程栈信息使⽤内存(thread_stack):主要⽤来存放每⼀个线程⾃⾝的标识信息,如线程id,线程运⾏时基本信息等等,我们可以通
过 thread_stack 参数来设置为每⼀个线程栈分配多⼤的内存。
排序使⽤内存(sort_buffer_size):MySQL⽤此内存区域进⾏排序操作(filesort),完成客户端的排序请求。当我们设置的排序区缓存⼤⼩⽆法满⾜排序实际所需内存的时候,MySQL会将数据写⼊磁盘⽂件来完成排序。由于磁盘和内存的读写性能完全不在⼀个数量级,所以sort_buffer_size参数对排序操作的性能影响绝对不可⼩视。
Join操作使⽤内存(join_buffer_size):应⽤程序经常会出现⼀些两表(或多表)Join的操作需求,MySQL在完成某些 Join 需求的时候
(all/indexjoin),为了减少参与Join的“被驱动表”的读取次数以提⾼性能,需要使⽤到 Join Buffer 来协助完成 Join操作。
当 Join Buffer 太⼩,MySQL 不会将该 Buffer 存⼊磁盘⽂件,⽽是先将Join Buffer中的结果集与需要 Join的表进⾏ Join 操作,然后清空 Join Buffer 中的数据,继续将剩余的结果集写⼊此 Buffer中,如此往复。这势必会造成被驱动表需要被多次读取,成倍增加 IO 访问,降低效率。
顺序读取数据缓冲区使⽤内存(read_buffer_size):这部分内存主要⽤于当需要顺序读取数据的时候,如⽆发使⽤索引的情况下的全表扫描,全索引扫描等。在这种时候,MySQL按照数据的存储顺序依次读取数据块,每次读取的数据快⾸先�
相关⽂档:
mysql> desc aa;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | &n ......
MySQL 4.1.12安装篇
[相关软件下载:]
Mysql 4.1.12-win32 -
For Windows ( Mysql 4. ) -- 数据库服务
下载地址:
Connector/ODBC
- MySQL ODBC driver ( MyODBC-3. ) -- 数据源
mysql下载odbc失败下载地址:
关于MySQL表设计应该注意的问题
1、慎重选择表名。
有两种选择:
按照多数开发语⾔的命名规则。⽐如(myCustomer)。
按照多数开源思想命名规则。⽐如(my_customer)。
按照咱们中国⼈的思想。⽐如(我的客户)。
第⼀种有个缺点,很容易忘掉⼤写的字 ......
要安装 MySQL,可以在终端提⽰符后运⾏下列命令:
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install php5-mysql
// 安装php5-mysql 是将php和mysql连接起来
⼀旦安装完成,MySQL 服务器应该⾃动启动。您可以在终端提⽰符后运⾏以下命令来检查 MySQL 服务器是否正在运⾏: ......
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论