mysql飚满问题有一台 mysql 5.7.1 的数据库实例以写入为主,IO 飙到接近100%,可以看到 写入 IOPS 很也高分析mysql飚满问题过程通过 iotop 工具可以看到当前 IO 消耗最高的 mysql 线程查看线程49342的堆栈,可以看到正在进行redo log的刷新,对应的是9号文件9号文件对应的是redo log的第一个文件 为什么 mysql 进程会频繁的刷新 redolog 文件,要结合 redolog 的刷盘策略来分析,关键是 innodb_flush_log_at_trx_commit 参数,默认是1最安全,但在写压力大的情况下,也会带来较大的性能影响,每次事务提交时 mysql 都会把 log buffer 的数据写入 log file 并且 flush (刷到磁盘)中去。 结合这个集群的写入场景来看,大部分都是小事务的写入,每次事务提交都会触发刷盘动作,这种场景下通过增大 innodb_log_buffer_size 和 innodb_log_file_size 的优化效果不明显。mysql飚满优化方案应用层面,对于写压力大的系统,可以将单条...
今天有一个朋友问我了一个问题意思是假设我们有一张表需要每天 定时迁移数据 那么我们在进行迁移的时候某些环境下就会触发自增列 并发插入死锁 问题如下。mysql 死锁问题测试 触发 死锁问题 采用一下 sql 进行 测试 复现insert into data_cache (customerID,organizationID,createTime) ( select customerID,organizationID,createTime from data where DATE(createTime) <= DATE(?) and autoIndex >= ? and autoIndex <= ? ); 大致意思是根据 autoIndex 去判定那些数据需要迁移,在程序中已经分好区域了,比如 1~100 , 101~200 , 201~300 这些,两张表的数据表结构均一致如下CREATE TABLE `data` ( `customerID` varchar(50) NOT NULL COMMENT '客户编号...
我们以 ComboBox控件 为例 来测试使用通过绑定 控件数据源 来对接 接口数据源 进行数据输出使用展示。绑定接口输出为数据源假设我们通过接口获取到一下json数据对象[ { "id":1, "name":"李元芳" }, { "id":2, "name":"莉莉2" }, { "id":3, "name":"赵先生" } ]把 数据对象 绑定到 DataSource 上 myDataTable 为json对象comboBox.DataSource = myDataTable;最后我们设置一下对应数据字段即可//这个DataTable是你从数据库拿出来的包括ID和值 或者是json解析后的 comboBox.ValueMember = "ID";//这对应你的字段名 comboBox.DisplayMember = "Name";//对应你的字段名用户选择后,你可以通过这个语句,拿到ID的值 string myID=com...
下面通过使用 EventHandler 和 MethodInvoker 两种方式实现c#多线程或者线程池在子线程中调用其他窗体的控件两种委托方式。MethodInvoker 委托方式 MethodInvoker 表示一个委托,该委托可以执行托管代码中声明为 void 且 不接受任何参数 的任何方法。 在对控件的 invoke 方法进行调用时或需要一个 简单委托 又不想自己定义时可以使用该委托。MethodInvoker 委托方式使用示例MethodInvoker methodInvoker; methodInvoker=new MethodInvoker(自定义方法()) Views.Purcuase.Bill.bill.BeginInvoke(methodInvoker) //要委托给哪个窗体 EventHandler 委托方式 EventHandler 和 MethodInvoker 差不多最直观的不同就是 EventHandler 可以 传递参数 在 子线程 中直接使用。EventHandler 委托方式使用示例 // 可以直接在线程方法中使用 Views.Purcu...
我们在创建使用 自定义winform用户控件 的时候往往程序默认属性是 不满足我们的需求 的,这个时候就需要我们自定义我们需要的控件属性来满足业务需求也就是 自定义控件属性 ,下面将实现c#实现 自定义控件属性 方法。首先添加自定义控件 按照以下步骤创建测试 自定义用户控件 以便测试 自定义控件属性 使用。右键点击项目选择用户控件点击用户控件添加用户控件然后跳转到自定义控件代码部分 创建完 自定义用户控件 后我们可以跳转到控件代码部分。可以通过在窗体上选择控件右键查看代码也可以通过使用快捷键 F7 查看代码添加自定义用户控件属性 添加自定义用户控件属性可以通过一下两种方式去实现。通过自定义类属性来添加自定义用户控件属性通过代码定义自定义代码方法去实现。通过自定义类属性来添加自定义用户控件属性 很简单 如下图所示 我们可以像平时 定义类属性 一样去定义自定义用户控件属性,ide会 自动识别 我们定义的属性。 下面我们测试 自定义用户控件text属性。private string text; public string Text{get=>text,set=>text=value;...
本文主要记录分享一下微信养号规则以及权重说明微信使用规则篇微信 8 个常见的使用规则注册新微信 微信的最新规则,注册微信的时候需要邀请一个好友帮忙 扫码辅助 ,辅助的账号要注册 半年以上 ,本月未帮人辅助注册过,且开通了 微信支付 ,腾讯目前并没有 全面升级 , 部分朋友注册 新微信号 ,有时不会出现这个要求。微信实名认证 一个身份证可以实名认证 5 个微信号,一张银行可以绑定 3 个号,之前可以只用身份证进行认证,现在腾讯升级为 必须绑定银行卡 认证了,认证信息是可以注销的,注销后微信的 余额就会被清零 ,注销后可以换一个身份认证。现在微信若不做实名认证会有很多 功能受限 。主动添加好友 包括通讯录加人,查找加人,摇一摇,扫一扫。每天主动加别人的上限是 50 人,每 10 个小时不要超过 15 人。超过这个阀值,你发送了请求对方也无法收到, 而且会有被封号的风险,要特别小心。面对面建群 现场能建 100 人的群,超过 100 人,对方需要通过 实名验证 才能接受邀请(可通过绑定银行卡进行验证)。被动添加好友 微信每天 被动加好友 人数不能超过 200 人,否则也有封号危险。进...
因为业务要求现在我们需要将 DataGridView 控件默认点击 列标题排序功能禁用 掉,下面我们将讲解下怎么实现禁用 DataGridView 点击列标题排序。如何禁止DataGridView点击列标题后排序 以前 DataGrid 有一个 AllowSorting 这个属性可以禁止但是 DataGridView 没有 AllowSorting 这个属性。 我查 MSDN 的结果是必须对每个列单独设置,不能整体设为不可排序。实现禁用DataGridView点击列标题排序 DataGridView 中的 Columns 属性里面可以设置。 进入 Edit Columns 窗口后,在相应的列属性设置里面把 SortMode 属性选择为 NotSortable 就可以了是不是很简单。 关于如何禁止 DataGridView 点击列标题后排序以及 解决方案 已经实现了。