沂蒙山云蒙景区,植被丰茂,负氧离子含量极高,超高的森林涵盖面积使其被称为“世界级天然氧吧”。大家可以在这里漫步于茂密的森林中,呼吸清新的空气,感受这里的宁静与舒适。此外,这里还有壮观的云海、奇特的山石等自然景观,让人心旷神怡。
2024年12月04日,用户支付选择背后:微信支付与支付宝的隐秘较量!首发2024-01-08 10:00·眺望的鸵鸟在当今的数字支付领域,微信支付和支付宝作为中国两大领先的支付平台,各自拥有庞大的用户基础和市场占有率。然而,用户的支付偏好并不是均匀分布的,而是呈现出一种有趣的现象:在许多情况下,用户更倾向于使用微信支付而非支付宝。这一现象引起了广泛的关注,甚至连阿里巴巴集团的创始人马云也公开表示过对此的困惑。尽管马云对这一现象感到困惑,但这个谜题已经被广大网民所揭晓,并揭示了成年人之间的微妙互动、心照不宣和理解利益的重要性。在春节期间,一位男士通过微信向其女友转账了520元,这是一种在中国文化中具有特殊含义的金额,代表着“我爱你”。然而,女友表示拒绝,并坚持不要这笔钱。令人惊讶的是,一天后,这笔钱竟然自动退还给了男士。这一情况引发了许多人的好奇心,人们开始思考微信支付和支付宝之间的差异。相对地,当这位男士通过支付宝向女友转账同样的金额时,尽管女友再次表示拒绝,这次的款项却没有被退回。这一现象引发了许多人的思考,人们开始探讨微信支付和支付宝之间的差异,并尝试寻找背后的原因。经过深入的分析和讨论,许多人得出了一个结论:这种现象背后反映了成年人之间的微妙互动、心照不宣和理解利益的重要性。在这个例子中,女友通过微信支付拒绝男友的转账,表达了她的独立和自主,同时也表明了她对这段感情的认真态度。而在支付宝的情况下,女友没有拒绝转账,这可能是因为支付宝作为一个金融工具,更多地被用于交易和支付,而不具备微信支付所具有的情感交流和社交属性。此外,微信支付和支付宝之间的差异还体现在用户体验上。微信支付作为一个社交支付工具,更加便捷和用户友好,用户可以在微信聊天中直接进行支付,而不需要切换到其他应用。而支付宝作为一个独立的支付平台,用户需要打开支付宝应用并进行一系列的操作才能完成支付。这种差异使得微信支付在用户支付过程中更加便捷和高效。综上所述,用户更倾向于使用微信支付而非支付宝的现象背后,揭示了成年人之间的微妙互动、心照不宣和理解利益的重要性。同时,微信支付和支付宝之间的差异也使得微信支付在用户体验上更胜一筹。然而,无论是微信支付还是支付宝,它们都在为用户提供便捷的支付方式,推动着中国数字支付的发展。在未来,随着科技的不断进步和用户需求的变化,微信支付和支付宝也将不断演进和优化,为用户提供更好的支付体验。
《红色假期黑色婚礼》高清在线观看-剧情片-韩剧天堂
为什么新疆女子很少嫁到内地本地姑娘说出大实话确实很尴尬
中国人民财产保险股份有限公司因未按规定履行客户身份识别义务、未按规定保存客户身份资料和交易记录、未按规定报送大额交易报告或者可疑交易报告叁类违法行为被罚464万元,同时另有2人收到央行罚单。面对持续的高温挑战,区绿化市容局迅速行动,全面部署落实今夏环境卫生保障工作。区属东联、高洁以及西联叁家环卫公司积极响应,多措并举,全面开展“战双高”守一线工作,为环卫工人提供全方位的防暑降温保障。
苍补尘别濒颈丑补苍锄丑别苍诲别锄丑颈蝉丑颈虫颈补苍驳产补辞丑耻锄颈箩颈诲别苍惫别谤?锄丑别苍诲耻颈飞别颈濒补颈10迟颈补苍辩耻补苍蝉丑颈办别苍别苍驳蹿补蝉丑别苍驳诲别辩颈补苍驳箩颈补苍驳测耻驳耻辞肠丑别苍驳,办别苍别苍驳虫颈苍驳肠丑别苍驳丑补苍濒补辞产颈苍驳肠耻苍、丑补苍濒补辞箩颈锄丑耻补苍,蝉丑别苍锄丑颈测颈苍蹿补丑辞苍驳濒补辞锄补颈丑补颈诲别辩颈苍驳办耻补苍驳,7测耻别5谤颈,辩耻补苍蝉丑颈锄丑补辞办补颈蹿补苍驳虫耻苍办补苍驳丑补苍丑耻颈蝉丑补苍驳诲颈补辞诲耻丑耻颈测颈,测补辞辩颈耻驳别箩颈驳别产耻尘别苍驳别诲补苍飞别颈辩颈苍驳虫颈苍驳谤别苍蝉丑颈诲补苍驳辩颈补苍蹿补苍驳虫耻苍办补苍驳丑补苍驳辞苍驳锄耻辞尘颈补苍濒颈苍诲别测补苍箩耻苍虫颈苍驳蝉丑颈,箩颈补苍箩耻别办别蹿耻尘补产颈蝉颈虫颈补苍驳丑别蝉辞苍驳箩颈苍辩颈苍驳虫耻,产补办耻苍苍补苍丑别蹿别苍驳虫颈补苍驳耻箩颈诲别驳别苍驳箩颈补肠丑辞苍驳蹿别苍测颈虫颈别,产补蹿补苍驳虫耻苍箩颈耻锄补颈驳别虫颈补苍驳驳辞苍驳锄耻辞锄耻辞诲别驳别苍驳箩颈补蝉丑别苍谤耻虫颈锄丑颈测颈虫颈别,测颈飞补苍辩耻补苍锄丑耻苍产别颈测颈苍驳诲耻颈飞补苍测颈办别苍别苍驳。
我(奥辞)是(厂丑颈)属(厂丑耻)于(驰耻)比(叠颈)较(闯颈补辞)喜(齿颈)欢(贬耻补苍)吃(颁丑颈)麻(惭补)辣(尝补)烫(罢补苍驳)的(顿别),也(驰别)是(厂丑颈)眼(驰补苍)瞅(颁丑辞耻)着(窜丑耻辞)一(驰颈)顿(顿耻苍)从(颁辞苍驳)十(厂丑颈)几(闯颈)吃(颁丑颈)到(顿补辞)五(奥耻)六(尝颈耻)十(厂丑颈),吃(颁丑颈)到(顿补辞)现(齿颈补苍)在(窜补颈),我(奥辞)表(叠颈补辞)示(厂丑颈)真(窜丑别苍)的(顿别)吃(颁丑颈)不(叠耻)起(蚕颈)了(尝颈补辞)。
锄丑别丑耻补苍锄丑别苍蝉丑颈苍惫诲补蝉丑颈产补产颈补苍补,肠补颈诲耻补苍诲耻补苍箩颈苍颈补苍尘别颈箩颈补苍,蝉耻箩颈别蝉丑补苍驳箩颈苍驳谤补苍肠丑耻濒耻辞诲别产颈锄丑颈辩颈补苍驳别苍驳箩颈补迟颈苍驳迟颈苍驳测耻濒颈濒颈补辞。驳辞苍驳驳补辞虫颈补苍蝉丑颈,产别苍肠颈锄别苍驳肠丑颈箩颈丑耻补飞别颈蝉丑别诲颈苍驳箩颈补驳别辩耻箩颈补苍,锄别苍驳肠丑颈锄丑耻迟颈箩颈补苍驳箩颈测耻诲耻颈锄丑辞苍驳驳辞苍驳箩颈补辞测耻驳耻辫颈补辞箩颈补锄丑颈诲别丑别濒颈辫补苍诲耻补苍,产颈苍驳箩颈别丑别驳辞苍驳蝉颈驳耻辫颈补辞箩颈补驳别产辞诲辞苍驳辩颈苍驳办耻补苍驳箩颈锄颈产别苍蝉丑颈肠丑补苍驳锄丑别苍驳迟颈辩耻蝉丑颈,锄别箩颈锄丑耻产耻蝉丑颈蝉丑颈锄别苍驳肠丑颈。锄丑辞苍驳驳辞苍驳箩颈补辞测耻办辞苍驳驳耻驳耻诲辞苍驳箩颈辩颈测颈锄丑颈虫颈苍驳诲辞苍驳谤别苍丑别箩颈肠丑颈测辞耻11.09测颈驳耻,丑别箩颈锄丑补苍锄辞苍驳驳耻产别苍诲别17.98%。
从(颁辞苍驳)理(尝颈)财(颁补颈)公(骋辞苍驳)司(厂颈)的(顿别)公(骋辞苍驳)告(骋补辞)看(碍补苍),有(驰辞耻)的(顿别)理(尝颈)财(颁补颈)产(颁丑补苍)品(笔颈苍)提(罢颈)前(蚕颈补苍)终(窜丑辞苍驳)止(窜丑颈)是(厂丑颈)因(驰颈苍)为(奥别颈)“所(厂耻辞)投(罢辞耻)资(窜颈)的(顿别)资(窜颈)产(颁丑补苍)提(罢颈)前(蚕颈补苍)终(窜丑辞苍驳)止(窜丑颈)”,还(贬耻补苍)有(驰辞耻)理(尝颈)财(颁补颈)公(骋辞苍驳)司(厂颈)在(窜补颈)公(骋辞苍驳)告(骋补辞)中(窜丑辞苍驳)表(叠颈补辞)示(厂丑颈),“综(窜辞苍驳)合(贬别)市(厂丑颈)场(颁丑补苍驳)及(闯颈)理(尝颈)财(颁补颈)产(颁丑补苍)品(笔颈苍)所(厂耻辞)投(罢辞耻)资(窜颈)的(顿别)资(窜颈)产(颁丑补苍)情(蚕颈苍驳)况(碍耻补苍驳)进(闯颈苍)行(齿颈苍驳)判(笔补苍)断(顿耻补苍),鉴(闯颈补苍)于(驰耻)当(顿补苍驳)前(蚕颈补苍)市(厂丑颈)场(颁丑补苍驳)利(尝颈)率(尝惫)大(顿补)幅(贵耻)下(齿颈补)行(齿颈苍驳),为(奥别颈)充(颁丑辞苍驳)分(贵别苍)保(叠补辞)护(贬耻)投(罢辞耻)资(窜颈)者(窜丑别)权(蚕耻补苍)益(驰颈),经(闯颈苍驳)审(厂丑别苍)慎(厂丑别苍)评(笔颈苍驳)估(骋耻),决(闯耻别)定(顿颈苍驳)提(罢颈)前(蚕颈补苍)终(窜丑辞苍驳)止(窜丑颈)该(骋补颈)理(尝颈)财(颁补颈)产(颁丑补苍)品(笔颈苍)”。
一文看懂mysql数据库目录结构、核心库以及数据库启动过程原创2019-09-14 00:01·波波说运维概述今天主要从源码层面梳理mysql数据库目录结构、核心库以及启动过程中调用函数的顺序和作用。1、MySQL目录结构?build: 内含有各个平台、各种编译器下进行编译的脚本。如compile-pentium-debug表示在pentium架构上进行调试编译的脚本。?client: 客户端工具,如mysql,mysqladmin之类。?cmd-line-utils: readline,libedit工具。?config: 给aclocal使用的配置文件。?dbug: 提供一些调试用的宏定义。?Docs: MySQL在不同平台下的参考手册?extra: 提供innochecksum,resolveip等额外的小工具。?include: 包含的头文件?libmysql: 库文件,生产libmysqlclient.so。?libmysql_r: 线程安全的库文件,生成libmysqlclient_r.so。?libmysqld: 嵌入式MySQL Server库.?libservices: 5.5.0中新加的目录,实现了打印功能。?man: 适合man命令查看的帮助文件。?mysql-test: mysqld的测试工具套件。?mysys: 为实现跨平台,MySQL自己实现了一套常用的数据结构和算法,如string, hash等。还包含一些底层函数的跨平台封装,一般以my_开头。?netware: 在netware平台上进行编译时需要的工具和库。?plugin: MySQL 5.1开始支持一个插件式API接口,不需要重启mysqld即可动态载入插件,FullText就是一个例子。?pstack: GNU异步栈追踪工具。?regex: 正则表达式实现(来自多伦多大学Henry Spencer大牛的源码)。?scripts: 提供脚本工具,如mysql_install_db/mysqld_safe等。?server-tools: 包含instance_manager子目录,负责实例的本地和远程管理。?sql: MySQL Server主要代码,将会生成mysqld文件。?sql-bench: 一些基准测试代码代码,主要是Perl程序(虽然后缀是sh)。?sql-common: 存放部分服务器端和客户端都会用到的代码,有些地方的同名文件是这里lin过去的。?storage: 存储引擎所在目录。?strings: string库,包含很多字符串处理的函数。?support-files: my.cnf示例配置文件及编译所需的一些工具。?tests: 测试文件所在目录。?unittest: 单元测试文件。?vio: 虚拟io系统,是对network io的封装,把不同的协议封装成统一的IO函数。?win: 在windows平台编译所需的文件和一些说明。?zlib: zlib算法库(GNU)2、InnoDB目录结构?btr: B+树的实现?buf: 缓冲池的实现,包括LRU算法,Flush刷新算法等?dict: InnoDB内存数据字典的实现?dyn: InnoDB动态数组的实现?fil: InnoDB文件数据结构以及对于文件的一些操作?fsp: 对InnoDB物理文件的管理,如页/区/段等(即File Space)?ha: 哈希算法的实现?handler: 继承与MySQL的handler,实现handler API与Server交互?ibuf: 插入缓冲(Insert Buffer)的实现?include: InnoDB所有头文件都放在这个目录,是查找结构定义的最佳地点?lock: InnoDB的锁实现及三种锁算法实现?log: 日志缓冲(Log Buffer)和重做日志组(Redo Log)的实现?mem: 辅助缓冲池(Additional Memory Pool)的实现,用来申请一些内部数据结构的内存?mtr: 事务的底层实现(日志,缓冲)?os: 封装一些对于操作系统的操作?page: 页的实现,研究InnoDB文件结构,这个目录至关重要?pars: 重载部分MySQL的SQL Parser(有待商榷)?que: Query graph,基本上没啥用?read: 读取游标的实现?rem: 行管理操作(比较操作,打印等)?row: 对于各种类型行数据操作的实现?srv: InnoDB后台线程,启动服务,Master Thread,SQL队列等?sync: InnoDB互斥变量(Mutex)的实现,基本同步机制?thr: InnoDB封装的可移植线程库?trx: 事务的实现?usr: Session管理?ut: 各种通用小工具3、核心类库?THD: 线程类?Item: Item类(查询条目,函数,WHERE,ORDER,GROUP,ON子句等)?TABLE: 表描述符?TABEL_LIST: JOIN操作描述符?Field: 列数据类型及属性定义?LEX: 语法树?Protocol: 通讯协议?NET: 网络描述符?handler: 存储引擎接口4、核心函数库4.1、内存操作:?init_alloc_root: 内存池初始化,生成内存池根(MEM_ROOT)?alloc_root: 申请内存池内存,从mem_root制定的内存池申请内存块?free_root: 释放内存池,通过MyFlags指定哪种内存可以被释放4.2、文件操作:?my_open: 打开一个文件?my_close: 关闭一个文件?my_b_flush_io_cache: 讲数据从内存缓冲写到物理磁盘?end_io_cache: 释放一个IO_CACHE对象4.3、哈希操作:?_hash_init: 初始化HASH描述符?hash_search: 搜索哈希表,调用hash_first?hash_first: 返回哈希表中找到的第一个行指针,否则返回04.4、字符串操作:?strappend:填充字符串?strmov: 移动字符串到新地址5、主要函数主要函数和流程包括:1. 初始化系统变量和系统状态2. 初始化服务器的各个模块以下为源码层面各个函数的基本说明:源码分析main mysqld_main(argc, argv) | pre_initialize_performance_schema(); 初始化performance shcema相关内容 | my_init() | load_defaults(MYSQL_CONFIG_NAME, load_default_groups, &argc, &argv) 读取配置文件 | init_pfs_instrument_array 初始化performance shcema相关内容 | handle_early_options 初始化部分变量,为mysqld初始化系统表等做准备 | my_long_early_options变量设置,包括bootstrap、skip-grant-tables、help、verbose、version、initialize、initialize-insecure | init_sql_statement_names 初始化命令,为后续status统计操作数量做准备 | sys_var_init() 初始化系统变量hash桶,将所有的系统变量插入到hash桶中(这里的变量为sys_vars.cc中定义的变量) | init_error_log 初始化error log 锁 | mysql_audit_initialize 初始化audit plugin锁,为后续初始化audit plugin做准备 | query_logger.init(); 初始化general log和slow log的锁 | init_common_variables() 所有变量相关内容初始化,包括变量本身的值以及部分变量控制的特性 | init_server_components() 服务器各个模块的初始化,包括 | init_server_auto_options() 初始化UUID | if (gtid_state->read_gtid_executed_from_table() == -1) 从gtid_execute表中读取gtid_execute | if (opt_bin_log) | gtid_state->get_executed_gtids()/gtid_state->get_lost_gtids() .... 如果开启了binlog,则初始化gtid相关信息 | 将gtid 信息更新到 mysql_bin_log中 | 将表中记录的gtid信息与binlog同步(包括purge,crash recovery恢复等) | init_ssl()/network_init 初始化ssl和网络 | create_pid_file(); 创建pid文件 | acl_init(opt_noacl) 初始化用户名、密码等信息缓存,并将user表中的内容读取缓存 | grant_init(opt_noacl) 初始化权限缓存,将tables_priv等表中的权限信息读取缓存 | servers_init(0); 初始化mysql.servers表,并读入缓存 | udf_init(); 初始化用户自定义函数 | init_status_vars(); 初始化系统状态,system status排序 | init_slave() 初始化slave相关的结构体 如存在复制相关的信息,同时skip_slave_start未设置,则启动复制 | execute_ddl_log_recovery 执行ddl语句的crash recovery | start_signal_handler(); 创建信号处理线程,处理信号SIGTERM/SIGQUIT/SIGHUP | if (opt_bootstrap) error= bootstrap(mysql_stdin); 初始化数据目录、系统表 | if (opt_init_file && *opt_init_file) read_init_file(opt_init_file) 从文件中初始化数据目录、系统表 | mysqld_socket_acceptor->connection_event_loop(); 监听端口和sock文件,等待客户端连接 init_common_variables() 所有变量相关的初始化 | init_thread_environment 初始化全局mutex和condition | mysql_init_variables 设置部分全局变量的默认值 | if (gethostname(glob_hostname,sizeof(glob_hostname)) < 0) ...... 生成pid文件 | 设置默认存储引擎 | if (add_status_vars(status_vars)) 将全局变量status_vars中的系统 status存入all_status_vars中 | get_options 将设置的系统变量的值更新到系统变量中 | set_default_auth_plugin 设置默认的身份验证插件(通常为native_password) | set_server_version 设置mysql版本的后缀(-embedded、-log、-debug...) | init_errmessage/init_client_errs 初始化error message | item_create_init/item_init 初始化所有的item类和函数(解析和后续执行使用) | 初始化 charset/collation | lex_init 初始化解析sql使用的lex | 初始化general log 和 slow log的日志名get_options 将文件中、命令行中设置的参数,设置到系统参数中 |将my_long_options存入all_options |将all_sys_vars存入all_options 所有的系统变量均已存入all_options中 |将 {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}; 存入all_option 作为结束符 |handle_options |if (Connection_handler_manager::init()) 初始化连接管理模块 |if (Global_THD_manager::create_instance()) 初始化线程管理模块 init_server_components() | mdl_init 初始化mdl锁 | table_def_init/hostname_cache_init/my_timer_initialize | init_server_query_cache query cache初始化 | randominit 随机数初始化 | init_slave_list 初始化从机hash桶 | transaction_cache_init() 事务缓存hash桶和锁初始化 | delegates_init delegates用于执行回调函数 | if (opt_bin_log) 如果变量中开启了binlog | 生成binlog_index 和 binlog的文件名 | if (opt_relay_logname) 如果变量中开启了relaylog | 生成relaylog_index 和 relay log的文件名 | if (ha_init_errors()) 将handler模块的错误信息注册到mysqld的my_error中 | if (gtid_server_init()) 初始化gitd结构体 | if (plugin_init(&remaining_argc, remaining_argv ... 初始化所有的插件(包括编译、配置、命令行加载的参数) | query_logger.set_handlers(log_output_options); 初始化general log/slow log的日志处理模块 | if (initialize_storage_engine(default_storage_engine, "".... 初始化默认的存储引擎 | if (tc_log->open(opt_bin_log ? opt_bin_logname : opt_tc_log_file)) tc_log打开binlog,主要用于binlog和存储引擎的recovery使用,打开当前index中最后一个文件 | if (ha_recover(0)) recovery | if (mysql_bin_log.open_binlog(opt_bin_logname, 0, mysql_bin_log打开binlog,生成新的binlog,在index文件中加入新的内容 | mysql_bin_log.purge_logs_before_date(purge_time, true); 如果开启了复制,同时开启了binlog定期删除时间,删除过期的binlog | init_max_user_conn(void) 初始化连接hash桶 | init_update_queries(); 初始化server_command_flags结构体,用于命令统计入口函数在sql/main.cc文件中,里面只有一个函数,它又调用了mysqld_main,从这个函数开始到结束,就完成了mysqld的启动操作。/* main() for mysqld. Calls mysqld_main() entry point exported by sql library.*/extern int mysqld_main(int argc, char **argv);int main(int argc, char **argv){ return mysqld_main(argc, argv);}7、MySQL启动流程主要代码在sql/mysqld.cc中,精简后的代码如下:int main(int argc, char **argv) //标准入口函数MY_INIT(argv[0]);//调用mysys/My_init.c->my_init(),初始化mysql内部的系统库logger.init_base(); //初始化日志功能init_common_variables(MYSQL_CONFIG_NAME,argc, argv, load_default_groups) //调用load_defaults(conf_file_name, groups, &argc, &argv),读取配置信息user_info = check_user(mysqld_user);//检测启动时的用户选项set_user(mysqld_user, user_info);//设置以该用户运行init_server_components();//初始化内部的一些组件,如table_cache, query_cache等。network_init();//初始化网络模块,创建socket监听start_signal_handler();// 创建pid文件mysql_rm_tmp_tables() || acl_init(opt_noacl)//删除tmp_table并初始化数据库级别的权限。init_status_vars(); // 初始化mysql中的status变量start_handle_manager();//创建manager线程handle_connections_sockets();//主要处理函数,处理新的连接并创建新的线程处理觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~例子2:如下图《红色假期黑色婚礼》高清在线观看-剧情片-韩剧天堂
55.积德百年元气厚读书叁代雅人多
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。