当前位置: 首页 > news >正文

帮朋友免费做网站小程序端

帮朋友免费做网站,小程序端,装修公司怎么做免费网站,百度平台投诉人工电话背景#xff1a;MySQL经常会遇到Too many open files#xff0c;MySQL上的open_files_limit和OS层面上设置的open file limit有什么关系#xff1f;源码中也会看到不同的数据结构#xff0c;TABLE, TABLE_SHARE#xff0c;跟表是什么关系#xff1f;MySQL flush tables又…背景MySQL经常会遇到Too many open filesMySQL上的open_files_limit和OS层面上设置的open file limit有什么关系源码中也会看到不同的数据结构TABLE, TABLE_SHARE跟表是什么关系MySQL flush tables又做了些什么这几个东西放在一起就会比较迷惑下面进行梳理一下1 数据结构table:   MySQL为每一个查询sql中的表建一个TABLE对象table_share:  MySQL为每一张表建立一个table_share对象与frm文件对应handler:  对应于每个TABLE对象innodb引擎创建一个handlerdict_table_t:  innodb为每一个ibd表load一个数据字典对象简略图如下1. open table的过程测试sqlselect * from xpchild.pp函数调用栈open_and_lock_tablesopen_tablesopen_and_process_tableopen_table打开一个table并赋值给table_list-table下面进入核心的逻辑开始锁lock_open1.1 table_share:首先根据dbtable_name创建一个table_share.函数调用栈get_table_share_with_discover: 创建或者查找table_share对象。get_table_share如果全局cachetable_def_cache中存在就直接使用如果不存在就创建一个table_sharealloc_table_share: 如果不存在先分配一个share的对象。open_table_def: 打开frm文件。mysql_file_open: my_open打开inline_mysql_file_close: my_close关闭share-ref_count;要点MySQL server层维护了一个全局的table definition cache即table_def_cache所以一个table_share只会创建一次后续进行共享。初始化table_share的过程中调用文件系统打开frm文件初始化完成后关闭frm文件。share结构中ref_count来表示有多少个table关联1.2 打开tableopen_table_from_sharestep1: 初始化table中的变量包括file handler (get_new_handler(share-db_type()))step2: 添加各种索引字段结构step3: file-ha_openha_innobase::open 为innodb的table创建一个handler。要点1. 在open table的过程中innodb会创建一个handler并打开ibd文件初始化dict_table结构。释放锁lock_open1.3 close table:sql执行结束之前会调用close tableclose_open_tables(thd)table_def_unuse_table要点1.table_share维护了两个双向链表used_tablesfree_tables当close table的时候1.1 table-in_useNULL1.2 把table从used_tables移除1.3 加入到free_tables2.全局参数table_cache_size已经当前table_cache_count计数控制cache的置换策略2. 再次执行sql因为第一步已经完成了table_share的创建并且cache了table再次执行sql时open table的过程就比较简单2.1: get_table_share:从cache中直接获取table_share对象2.2open_table_from_share从s-free_tables中获取缓存的可以使用的table,然后增加ref计数。if (!share-free_tables.is_empty())table share-free_tables.front();share-ref_count;3 系统计数opened_tables系统在open_table_from_share中对新建的table进行thd-status_var.opened_tables计数。opened_shares: 系统在 open_table_def的函数中对于首次进行open的table_share进行thd-status_var.opened_shares计数注: 所以当系统的status:open_tables增长比较多的时候可以适当的增加table_cache_size用于缓存更多的table毕竟open table的开销还是不小的。4 status统计使用show status命令跟open有关的几个{Open_files, (char*) my_file_opened, SHOW_LONG_NOFLUSH}注释【全局变量】MySQL和innodb通过文件系统打开的文件的计数这里包括了所有的文件binlogrelayalertslow log等。{Open_table_definitions, (char*) show_table_definitions, SHOW_FUNC},注释【全局变量】server当前打开的table_share数量等于table_def_cache.records的数量{Open_tables, (char*) show_open_tables, SHOW_FUNC}注释【全局变量】 server当前打开的table数量server维护了一个全局变量table_cache_count{Opened_files, (char*) my_file_total_opened, SHOW_LONG_NOFLUSH}注释【全局变量】 启动以来打开过的文件的总数{Opened_tables, (char*) offsetof(STATUS_VAR, opened_tables), SHOW_LONG_STATUS}注释: 【线程变量】 在真正open_table_from_share的过程中累计计数{Opened_table_definitions, (char*) offsetof(STATUS_VAR, opened_shares), SHOW_LONG_STATUS}注释: 【线程变量】 在真正打开share的时候累计计数注 use test的过程在use test的过程中会轮询把test db下的所有表的table_share都创建一遍即open所有的frm文件并创建table_share对象最后close 所有的frm文件。为了方便调试写了一个进程监控的程序pidmon.py在gdb的时候可以看到mysqld进程打开的所有文件Too many open files:这里包括了server层的open frm和innodb层open ibd的时候当打开的文件超过limit限制就会报这个错误。但这个限制牵涉到两个参数一个是MySQL配置的open_files_limit一个是OS层配置的进程的open file limit下一篇flush tables究竟做了什么close了server层创建的所有的table_share和table。
http://www.huolong8.cn/news/340305/

相关文章:

  • 自己做网站生意怎么样品牌建设怎么写
  • 福鼎网站建设怎么创建自己的购物平台
  • 网站备案用英文flash做ppt的模板下载网站有哪些
  • 网站怎么进入金戈枸橼酸西地那非
  • 电子商务网站的建设论文wordpress提高浏览量
  • 如何建网站老鱼网企业网页制作教程和流程
  • 交友免费网站建设网络设计是啥
  • 网站空间是指什么高唐网站开发
  • 防下载 的视频网站 怎么做北流建设局网站
  • 息壤网站打不开了wordpress 游戏主题下载失败
  • 便宜点的网站空间精准营销数据
  • 上海网站建设要多少钱在建设网站入账
  • 中山网站快照优化公司建设网站号码是多少
  • 公司可以备案几个网站搭建论坛网站
  • 设计网页作业济南优化网站的哪家好
  • 银川网站建设联系电话谭木记网页制作教程
  • 乐清网站优化wordpress quiz
  • 变更网站做推广需要备案wordpress表单中文版
  • 找人做网站应该注意哪些工业设计完整作品集
  • 使用vs2015做网站教程常州高端网站建设公司哪家好
  • 公司网站销售平台建设费分录海外网络怎么搭建
  • 阿里云网站注册安宁网站建设熊掌号
  • 网页设计网站开发需要什么软件上海网站建设报价
  • 有哪些ui的设计网站wordpress虚拟资源下载博客
  • 竞价网站建设做建材一般去什么网站宣传
  • 建网站商城平台wordpress字体在哪个文件夹
  • 人工智能设计网站外贸公司网站模板免费
  • 哪些行业网站推广做的多建设银行网银盾不能打开网站
  • wordpress服务器系统seo推广优化排名软件
  • 网站预算表怎么做上海网站设计专业团队