mdbq 4.2.4__tar.gz → 4.2.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mdbq might be problematic. Click here for more details.

Files changed (46) hide show
  1. {mdbq-4.2.4 → mdbq-4.2.5}/PKG-INFO +1 -1
  2. mdbq-4.2.5/mdbq/__version__.py +1 -0
  3. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/mysql/uploader.py +48 -2
  4. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq.egg-info/PKG-INFO +1 -1
  5. mdbq-4.2.4/mdbq/__version__.py +0 -1
  6. {mdbq-4.2.4 → mdbq-4.2.5}/README.txt +0 -0
  7. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/__init__.py +0 -0
  8. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/auth/__init__.py +0 -0
  9. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/auth/auth_backend.py +0 -0
  10. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/auth/crypto.py +0 -0
  11. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/auth/rate_limiter.py +0 -0
  12. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/js/__init__.py +0 -0
  13. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/js/jc.py +0 -0
  14. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/log/__init__.py +0 -0
  15. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/log/mylogger.py +0 -0
  16. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/myconf/__init__.py +0 -0
  17. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/myconf/myconf.py +0 -0
  18. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/mysql/__init__.py +0 -0
  19. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/mysql/deduplicator.py +0 -0
  20. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/mysql/mysql.py +0 -0
  21. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/mysql/s_query.py +0 -0
  22. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/mysql/unique_.py +0 -0
  23. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/other/__init__.py +0 -0
  24. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/other/download_sku_picture.py +0 -0
  25. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/other/error_handler.py +0 -0
  26. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/other/otk.py +0 -0
  27. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/other/pov_city.py +0 -0
  28. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/other/ua_sj.py +0 -0
  29. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/pbix/__init__.py +0 -0
  30. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/pbix/pbix_refresh.py +0 -0
  31. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/pbix/refresh_all.py +0 -0
  32. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/redis/__init__.py +0 -0
  33. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/redis/getredis.py +0 -0
  34. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/redis/redis_cache.py +0 -0
  35. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/route/__init__.py +0 -0
  36. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/route/analytics.py +0 -0
  37. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/route/monitor.py +0 -0
  38. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/route/routes.py +0 -0
  39. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/selenium/__init__.py +0 -0
  40. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/selenium/get_driver.py +0 -0
  41. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq/spider/__init__.py +0 -0
  42. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq.egg-info/SOURCES.txt +0 -0
  43. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq.egg-info/dependency_links.txt +0 -0
  44. {mdbq-4.2.4 → mdbq-4.2.5}/mdbq.egg-info/top_level.txt +0 -0
  45. {mdbq-4.2.4 → mdbq-4.2.5}/setup.cfg +0 -0
  46. {mdbq-4.2.4 → mdbq-4.2.5}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mdbq
3
- Version: 4.2.4
3
+ Version: 4.2.5
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -0,0 +1 @@
1
+ VERSION = '4.2.5'
@@ -694,14 +694,16 @@ class TableManager:
694
694
  # 主键定义(始终使用id作为主键)
695
695
  primary_key_def = "PRIMARY KEY (`id`)"
696
696
 
697
- # 唯一约束定义
697
+ # 唯一约束定义 - 使用前缀索引处理超长字段
698
698
  unique_defs = []
699
699
  if unique_keys:
700
700
  for i, uk in enumerate(unique_keys):
701
701
  # 过滤掉系统列
702
702
  filtered_uk = [col for col in uk if col.lower() not in ['id', 'create_at', 'update_at']]
703
703
  if filtered_uk:
704
- safe_uk = [f"`{self._sanitize_identifier(col)}`" for col in filtered_uk]
704
+ # 使用前缀索引处理超长字段
705
+ optimized_uk = self._apply_prefix_index_to_columns(filtered_uk, columns)
706
+ safe_uk = [f"`{self._sanitize_identifier(col)}`" for col in optimized_uk]
705
707
  unique_name = f"uniq_{i}"
706
708
  unique_defs.append(f"UNIQUE KEY `{unique_name}` ({','.join(safe_uk)})")
707
709
 
@@ -764,6 +766,50 @@ class TableManager:
764
766
  return f"`{cleaned}`"
765
767
 
766
768
  return cleaned
769
+
770
+ def _apply_prefix_index_to_columns(self, columns: List[str], column_definitions: Dict[str, str]) -> List[str]:
771
+ """
772
+ 为超长的varchar字段应用前缀索引,防止索引键长度超限
773
+
774
+ :param columns: 列名列表
775
+ :param column_definitions: 列定义字典
776
+ :return: 应用前缀索引后的列名列表
777
+ """
778
+ optimized_columns = []
779
+
780
+ for col in columns:
781
+ col_type = column_definitions.get(col, 'varchar(255)').lower()
782
+
783
+ # 只对varchar字段应用前缀索引
784
+ if 'varchar' in col_type:
785
+ # 提取varchar长度
786
+ match = re.search(r'varchar\((\d+)\)', col_type)
787
+ if match:
788
+ length = int(match.group(1))
789
+ # 如果varchar长度超过191字符,使用前缀索引
790
+ # 191 * 4 = 764字节,在3072字节限制内比较安全
791
+ if length > 191:
792
+ prefix_length = 191 # 使用191字符作为前缀
793
+ optimized_columns.append(f"{col}({prefix_length})")
794
+ logger.info('应用前缀索引', {
795
+ '列名': col,
796
+ '原始长度': length,
797
+ '前缀长度': prefix_length
798
+ })
799
+ else:
800
+ optimized_columns.append(col)
801
+ else:
802
+ # 如果没有指定长度,默认使用前缀索引
803
+ optimized_columns.append(f"{col}(191)")
804
+ logger.info('应用默认前缀索引', {
805
+ '列名': col,
806
+ '前缀长度': 191
807
+ })
808
+ else:
809
+ # 非varchar字段保持原样
810
+ optimized_columns.append(col)
811
+
812
+ return optimized_columns
767
813
 
768
814
 
769
815
  class DataProcessor:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mdbq
3
- Version: 4.2.4
3
+ Version: 4.2.5
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -1 +0,0 @@
1
- VERSION = '4.2.4'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes