<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Database on LeafCxy's Blog</title><link>https://leafcxy.github.io/tags/database/</link><description>Recent content in Database on LeafCxy's Blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 24 Jul 2025 07:45:04 +0000</lastBuildDate><atom:link href="https://leafcxy.github.io/tags/database/index.xml" rel="self" type="application/rss+xml"/><item><title>couchdb</title><link>https://leafcxy.github.io/posts/2025-07-24-14/</link><pubDate>Thu, 24 Jul 2025 07:45:04 +0000</pubDate><guid>https://leafcxy.github.io/posts/2025-07-24-14/</guid><description>&lt;p&gt;CouchDB是一个开源的面向文档的数据库管理系统，建立于 C++ 之上。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id="ui"&gt;ui&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://192.168.200.16:5984/_utils/#/_all_dbs"&gt;http://192.168.200.16:5984/_utils/#/_all_dbs&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="curl"&gt;curl&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http://admin:admin@192.168.200.16:5984/_utils/#/_all_dbs
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X PUT http://admin:admin@192.168.200.16:5984/test
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X GET http://admin:admin@192.168.200.16:5984/test
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X DELETE http://admin:admin@192.168.200.16:5984/test
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X PUT http://admin:admin@192.168.200.16:5984/test/&lt;span style="color:#e6db74"&gt;&amp;#34;002&amp;#34;&lt;/span&gt; -d &lt;span style="color:#e6db74"&gt;&amp;#34;{\&amp;#34;Name\&amp;#34;:\&amp;#34;Raju\&amp;#34;,\&amp;#34;age\&amp;#34;:\&amp;#34;23\&amp;#34;}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X GET http://admin:admin@192.168.200.16:5984/test/&lt;span style="color:#e6db74"&gt;&amp;#34;002&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;{&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;_id&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;002&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;_rev&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;1-d72ed8577c9b1547dec5052cd503b359&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;Name&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;Raju&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;23&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X PUT http://admin:admin@192.168.200.16:5984/test/&lt;span style="color:#e6db74"&gt;&amp;#34;002&amp;#34;&lt;/span&gt; -d &lt;span style="color:#e6db74"&gt;&amp;#34;{\&amp;#34;Name\&amp;#34;:\&amp;#34;Raju\&amp;#34;,\&amp;#34;age\&amp;#34;:\&amp;#34;24\&amp;#34;,\&amp;#34;_rev\&amp;#34;:\&amp;#34;1-d72ed8577c9b1547dec5052cd503b359\&amp;#34;}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X GET http://admin:admin@192.168.200.16:5984/test/&lt;span style="color:#e6db74"&gt;&amp;#34;002&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;{&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;_id&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;002&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;_rev&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;2-f2716b3df54d9bbbc7d9b4eafe965354&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;Name&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;Raju&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;24&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X GET http://admin:admin@192.168.200.16:5984/test/&lt;span style="color:#e6db74"&gt;&amp;#34;003&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;{&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;_id&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;003&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;_rev&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;1-d72ed8577c9b1547dec5052cd503b359&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;Name&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;Raju&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;23&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X DELETE http://admin:admin@192.168.200.16:5984/test/&lt;span style="color:#e6db74"&gt;&amp;#34;003&amp;#34;&lt;/span&gt;?rev&lt;span style="color:#f92672"&gt;=&lt;/span&gt;1-d72ed8577c9b1547dec5052cd503b359
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X GET http://admin:admin@192.168.200.16:5984/test/&lt;span style="color:#e6db74"&gt;&amp;#34;003&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;{&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;error&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;not_found&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;reason&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;deleted&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="查询"&gt;查询&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;###&lt;/span&gt; &lt;span style="color:#960050;background-color:#1e0010"&gt;ip&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;192&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;d&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;168&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;d&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;129&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;d&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;162&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;POST&lt;/span&gt; &lt;span style="color:#960050;background-color:#1e0010"&gt;http:&lt;/span&gt;&lt;span style="color:#75715e"&gt;//192.168.200.16:5984/ip192d168d129d162/_find
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;authorization:&lt;/span&gt; &lt;span style="color:#960050;background-color:#1e0010"&gt;Basic&lt;/span&gt; &lt;span style="color:#960050;background-color:#1e0010"&gt;YWRtaW&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;46&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;YWRtaW&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;Content-Type:&lt;/span&gt; &lt;span style="color:#960050;background-color:#1e0010"&gt;application/json&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;selector&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;datetime&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;$gte&amp;#34;&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;20220517000000000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;sort&amp;#34;&lt;/span&gt;:[{&lt;span style="color:#f92672"&gt;&amp;#34;datetime&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;desc&amp;#34;&lt;/span&gt;}],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;bookmark&amp;#34;&lt;/span&gt;:&lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;limit&amp;#34;&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;1000&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;fields&amp;#34;&lt;/span&gt;: [&lt;span style="color:#e6db74"&gt;&amp;#34;dateformat&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;data&amp;#34;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;execution_stats&amp;#34;&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>分布式锁</title><link>https://leafcxy.github.io/posts/2025-07-24/</link><pubDate>Thu, 24 Jul 2025 00:24:09 +0000</pubDate><guid>https://leafcxy.github.io/posts/2025-07-24/</guid><description>&lt;p&gt;分布式锁是一种用于在分布式系统中实现并发控制的机制。在分布式系统中，多个节点同时访问共享资源可能导致数据不一致或冲突的问题。分布式锁可以确保在任意时刻只有一个节点可以访问共享资源，从而避免并发冲突。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;分布式锁通常使用的是互斥锁（Mutex）的概念，它可以保证在同一时刻只有一个节点能够获取到锁，其他节点需要等待。一旦一个节点获取到了分布式锁，它就可以执行需要保护的临界区代码，执行完成后释放锁，其他节点才能继续竞争获取锁。&lt;/p&gt;
&lt;p&gt;实现分布式锁的方式有很多种，常见的方式包括使用数据库、缓存系统（如Redis）、分布式协调服务（如ZooKeeper）等。这些方式都提供了原子操作和分布式特性，可以确保在分布式环境下实现可靠的锁机制。&lt;/p&gt;
&lt;p&gt;使用分布式锁可以解决分布式系统中的并发控制问题，确保共享资源的安全访问，提高系统的可靠性和性能。然而，分布式锁的设计和实现需要考虑到各种复杂的情况，如死锁、锁竞争、性能等，因此在使用时需要仔细考虑和评估。&lt;/p&gt;
&lt;h2 id="ps"&gt;ps&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;rm -rf /*&lt;/code&gt; 是一个具有破坏性的命令，它在Unix和类Unix系统中用于删除文件和目录。这个命令的含义是递归地删除根目录下的所有文件和目录，包括系统关键文件和目录。由于这个命令的执行效果非常危险且不可逆，因此不推荐在生产环境或正常操作中使用。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;rm&lt;/code&gt; 是一个用于删除文件和目录的命令，&lt;code&gt;-rf&lt;/code&gt; 是rm命令的选项，其中 &lt;code&gt;-r&lt;/code&gt; 表示递归删除目录及其内容，&lt;code&gt;-f&lt;/code&gt; 表示强制删除，不进行确认提示。&lt;/p&gt;
&lt;p&gt;如果在终端中执行 &lt;code&gt;rm -rf /*&lt;/code&gt; 命令，它会立即删除根目录下的所有文件和目录，包括系统关键文件和目录，这将导致系统无法正常运行，数据丢失以及系统崩溃。因此，请务必小心使用该命令，并确保仅在了解其后果并且有充分的理由时使用。&lt;/p&gt;</description></item><item><title>mssql中的count函数</title><link>https://leafcxy.github.io/posts/2025-07-22-15/</link><pubDate>Tue, 22 Jul 2025 08:53:17 +0000</pubDate><guid>https://leafcxy.github.io/posts/2025-07-22-15/</guid><description>&lt;h2 id="count字段"&gt;COUNT(字段)&lt;/h2&gt;
&lt;p&gt;进行全表扫描，判断指定字段的值是否为NULL，不为NULL则累加。&lt;/p&gt;
&lt;p&gt;性能比&lt;code&gt;count(1)&lt;/code&gt;和&lt;code&gt;count(*)&lt;/code&gt;慢。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id="count和count1"&gt;COUNT(*)和COUNT(1)&lt;/h2&gt;
&lt;p&gt;在InnoDB中&lt;code&gt;COUNT(*)&lt;/code&gt;和&lt;code&gt;COUNT(1)&lt;/code&gt;实现上没有区别，而且效率一样，但是&lt;code&gt;COUNT(字段)&lt;/code&gt;需要进行字段的非NULL判断，所以效率会低一些。&lt;/p&gt;
&lt;p&gt;因为&lt;code&gt;COUNT(*)&lt;/code&gt;是SQL92定义的标准统计行数的语法，并且效率高，所以请直接使用&lt;code&gt;COUNT(*)&lt;/code&gt;查询表的行数！&lt;/p&gt;</description></item><item><title>Microsoft.Jet.OLEDB.4.0驱动程序</title><link>https://leafcxy.github.io/posts/2025-07-22-11/</link><pubDate>Tue, 22 Jul 2025 08:40:01 +0000</pubDate><guid>https://leafcxy.github.io/posts/2025-07-22-11/</guid><description>&lt;p&gt;在64位程序中运行使用Microsoft.Jet.OLEDB.4.0需要特别注意，因为Microsoft.Jet.OLEDB.4.0驱动程序是为32位环境设计的。在64位操作系统和64位应用程序中，它可能无法正常工作。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;如果你需要在64位程序中使用Microsoft.Jet.OLEDB.4.0，你可以尝试以下方法：&lt;/p&gt;
&lt;p&gt;使用WoW64（Windows on Windows 64）桥接器：WoW64是Windows提供的一种机制，允许32位应用程序在64位环境中运行。你可以通过在64位程序中调用WoW64桥接器来访问Microsoft.Jet.OLEDB.4.0驱动程序。这可以通过编程方式实现，例如使用系统调用来调用适当的WoW64函数。
使用32位版本的数据库引擎：如果你有权限安装额外的软件，你可以尝试安装32位版本的数据库引擎，例如Microsoft Access，它包含了Microsoft.Jet.OLEDB.4.0驱动程序。然后，你可以在64位程序中使用这个32位版本的数据库引擎来访问数据库。
使用替代的数据库连接驱动程序：如果可能，考虑使用与64位环境兼容的其他数据库连接驱动程序，例如MySQL或SQLite。这些驱动程序可以在64位环境中正常运行，并且提供了与Microsoft.Jet.OLEDB.4.0相似的功能。
请注意，这些方法可能并不适用于所有情况，具体取决于你的应用程序和需求。在进行任何更改之前，请确保备份你的数据，并测试你的应用程序以确保其正常工作。&lt;/p&gt;</description></item></channel></rss>